1
0
mirror of https://github.com/thib8956/nginx-proxy synced 2025-02-24 01:38:15 +00:00

205 Commits

Author SHA1 Message Date
Richard Hansen
2494e20784 chore: Remove support for legacy swarm
It doesn't work with the newer Docker Swarm mode so it doesn't have
much value anymore.
2023-02-01 03:04:37 -05:00
Richard Hansen
2115974e93 feat: Add ability to completely override location blocks
Co-authored-by: Trent Harvey <trent@harvdog.net>
2023-01-31 04:53:12 -05:00
Richard Hansen
6162427c45 fix: Generate at most one server directive per container 2023-01-28 18:01:19 -05:00
Richard Hansen
bcec2d9075 chore: Refactor upstream template for readability
In particular, reduce the nesting depth to make it easier to
understand what the code is doing by:

  * converting an $O(nm)$ nested loop into two serial $O(n)+O(m)$
    loops, and
  * consolidating similar nested `if` cases.
2023-01-28 18:01:19 -05:00
Richard Hansen
daeed502cb feat: Add a warning comment if the container port is published 2023-01-28 18:01:19 -05:00
Richard Hansen
5a8a6ceae2 chore: Improve debug comments in upstream template 2023-01-28 18:01:19 -05:00
Richard Hansen
2760ead490 chore: Remove warning comment when port is not exposed
Exposing ports is largely deprecated because it doesn't actually do
anything in Docker.
2023-01-28 18:01:19 -05:00
Richard Hansen
e97bf606c8 chore: Move version comment to the top of the template
to ensure that the version is always the first output line.

Also, always output `# nginx-proxy`, even if the version isn't known.
This makes it easier to find the start of the generated config in the
output of `nginx -T`.
2023-01-28 18:01:19 -05:00
Vincent Herlemont
07cc80ac6b
feat: Support LOG_FORMAT env variable (#2151) 2023-01-27 12:28:40 -05:00
Richard Hansen
8346b68a28 fix: Ignore VIRTUAL_HOST set to the empty string
Fixes #2144
2023-01-23 20:48:16 -05:00
Richard Hansen
f8ae0a4b00 feat: DEFAULT_ROOT=none disables the default location / block 2023-01-23 20:47:00 -05:00
Richard Hansen
8fbc8514ef feat: Unconditionally produce debug comments
Rationale for eliminating the check to see if the `DEBUG` environment
variable holds a true value:
  * The `DEBUG` environment variable might be set on a container (for
    purposes specific to that container, not `nginx-proxy`) to a value
    that cannot be parsed as a bool, which would break `nginx-proxy`.
  * It simplifies the template.
  * It eliminates a cold code path.
  * It avoids heisenbugs.
  * It makes debugging easier for users.

Also delete the debug info tests, as they are fragile and they provide
limited value.

Alternatively, we could avoid collision with the container's use of
the `DEBUG` environment variable by using a container label [1] such
as `com.google.nginx-proxy.nginx-proxy.debug`.  I think doing so has
dubious value, especially if we want to attempt backwards
compatibility with the `DEBUG` environment variable.

Fixes #2139

[1] https://docs.docker.com/engine/reference/commandline/run/#-set-metadata-on-container--l---label---label-file

Co-authored-by: Nicolas Duchon <nicolas.duchon@gmail.com>
2023-01-18 17:27:04 -05:00
Richard Hansen
2427b383b5 chore: Move global variables to a $globals dict
Planned future changes will introduce more embedded templates, and the ability
to pass the globals to the templates will be useful.
2023-01-17 00:42:20 -05:00
Richard Hansen
1b253cd908 chore: Wrap long comments 2023-01-17 00:42:20 -05:00
Richard Hansen
0da38122bd chore: Consistent indentation 2023-01-17 00:42:20 -05:00
Richard Hansen
f20662eeaa chore: Use {{- instead of {{ to clean up whitespace 2023-01-17 00:42:20 -05:00
Richard Hansen
d6d8b2205f chore: Fix comment terminators 2023-01-17 00:42:20 -05:00
Richard Hansen
4651bf411d chore: Fix comment for $proxy_connection variable 2023-01-17 00:42:20 -05:00
Richard Hansen
744bd82c54 chore: Combine identical HTTP and HTTPS servers 2023-01-17 00:42:20 -05:00
Richard Hansen
491642b1e9 chore: Factor out duplicate virtual path code 2023-01-17 00:42:20 -05:00
Richard Hansen
14d0f3f222 chore: Rename $container to $containers
The value is actually a slice/array of containers so it should be
pluralized.
2023-01-17 00:42:20 -05:00
Richard Hansen
05423c681a fix: Use parseBool to parse boolean strings 2023-01-17 00:42:20 -05:00
Richard Hansen
c117ae8fd8 chore: Use boolean for $server_found variable 2023-01-17 00:42:20 -05:00
浊酒
af877cf784 feat: Add proxy header X-Forwarded-Host
Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2022-12-26 17:59:50 -05:00
Nicolas Duchon
6f4f9ec20c
Merge pull request #1927 from rhansen/untrusted-headers
feat: Option to not trust `X-Forwarded-*` headers from clients
2022-12-26 20:47:05 +01:00
Richard Hansen
8aa00fcea2 feat: Option to not trust X-Forwarded-* headers from clients
If header values from a malicious client are passed to the backend
server unchecked and unchanged, the client may be able to subvert
security checks done by the backend server.
2022-12-19 02:48:01 -05:00
SilverFire - Dmitry Naumenko
510d376f00 Make sure networks order is the same 2022-05-11 12:56:18 +00:00
Nitin Jain
998d56c473 chore: indent location, upstream in template 2022-04-14 13:32:58 +05:30
Richard Hansen
55d913255d Fix IPv6 HTTP listen port 2022-03-20 18:54:07 -04:00
Nicolas Duchon
b6b7133a2e
fix: minor fixes on nginx template 2022-02-24 15:17:47 +01:00
Alexander Lieret
08c9586346
fix: Handle VIRTUAL_PROTO on virtual path basis 2022-02-24 15:08:18 +01:00
Alexander Lieret
28c74e8dae
fix: Move NETWORK_ACCESS to location block 2022-02-24 15:08:18 +01:00
Nicolas Duchon
efb250da01
fix: use most specific custom location config first
Co-authored-by: Jonathan Underwood <junderwood@bitcoinbank.co.jp>
2022-02-24 15:08:17 +01:00
Alexander Lieret
33eab70d32
feat: Add custom location block to virtual paths
This features allows the custom location blocks to be added to the
virtual path based routing. The custom config can be specified for each
container individually.
2022-02-24 15:08:17 +01:00
Alexander Lieret
4b85e95824
feat: Replace path stripping with variable
This commit removes the automatic path stripping and replaces it with a
user configurable environment variable. This can be set individually for
each container.
2022-02-24 15:08:17 +01:00
Alexander Lieret
9df330e51e
feat: Add user customizable default root response 2022-02-24 15:08:15 +01:00
Nicolas Duchon
28c73e5b52
fix: non working https with virtual path 2022-02-24 15:07:49 +01:00
Greg Symons
2901b917a0
feat: support for path-based routing
Co-authored-by: Josh Trow <josh.trow@gmail.com>
Co-authored-by: Adrian <WolfspiritM@users.noreply.github.com>
Co-authored-by: Rodrigo Aguilera <hi@rodrigoaguilera.net>
Co-authored-by: Alexander Lieret <alexander.lieret@fau.de>
2022-02-24 15:06:57 +01:00
Nicolas Duchon
fbf37456d0
feat: display container version 2022-01-11 22:38:30 +01:00
Unchun Yang
0780e636f9
Remove unnecessary tabs 2021-10-23 00:08:32 +09:00
Nicolas Duchon
e748ffdce4
feat: sha1 upstream names 2021-08-17 21:51:09 +02:00
Nicolas Duchon
89d37882b6
fix: always use sha1 of hostname as upstream name 2021-08-04 22:28:00 +02:00
Gilles Filippini
dfc84558a5 fix: upstream fallback entry with load balancing 2021-06-21 00:48:21 +02:00
Nicolas Duchon
2006968c05
Merge pull request #1667 from pini-gh/pini-1609
Use `server 127.0.0.1 down` entry only when required
2021-06-20 18:04:19 +02:00
Gilles Filippini
fca248a965 fix: server 127.0.0.1 down entry only when required 2021-06-15 23:54:24 +02:00
John Stucklen
fa8b0d7bad
fix: HTTPS redirection with custom HTTPS port 2021-06-15 00:33:06 +02:00
Scott Dutton
e9ab13781d
Fix spacing 2021-06-09 20:51:51 +01:00
Scott Dutton
9f069a42ac
Improve logging
Currently its almost impossible to know which host actually handled the request, this extra variable logs the upstream server too
2021-06-09 20:51:08 +01:00
Gilles Filippini
97a5dec57a Honor VIRTUAL_PORT + DEBUG flag + fallback entry
The VIRTUAL_PORT environment variable should always be honored.
Even when the related port is not exposed.
Fix for nging-proxy/nginx-proxy#1132.

This commit also add the DEBUG environment variable which enables more
verbose comments in the nginx comfiguration file to help troubleshooting
unreachable containers.

Finaly it fixes nging-proxy/nginx-proxy#1105 as well by defining only one
fallback entry per upstream block.
2021-05-28 00:04:43 +02:00
Laurynas Alekna
fb7a11212f Make server_tokens configurable per virtual-host 2021-05-13 21:52:06 +01:00