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

fix: use sha1 hash for config files when using regex host

This commit is contained in:
Nicolas Duchon 2024-11-01 20:32:00 +01:00
parent 5ec120a296
commit 73ba28091a

View File

@ -289,7 +289,7 @@
auth_basic "Restricted {{ .Host }}{{ .Path }}"; auth_basic "Restricted {{ .Host }}{{ .Path }}";
auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s_%s" .Host (sha1 .Path)) }}; auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s_%s" .Host (sha1 .Path)) }};
{{- else if (exists (printf "/etc/nginx/htpasswd/%s" .Host)) }} {{- else if (exists (printf "/etc/nginx/htpasswd/%s" .Host)) }}
auth_basic "Restricted {{ .Host }}"; auth_basic "Restricted {{ .HostIsRegexp | ternary "access" .Host }}";
auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s" .Host) }}; auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s" .Host) }};
{{- end }} {{- end }}
@ -570,7 +570,9 @@ proxy_set_header Proxy "";
{{- /* Loop over $globals.vhosts and update it with the remaining informations about each vhost. */}} {{- /* Loop over $globals.vhosts and update it with the remaining informations about each vhost. */}}
{{- range $hostname, $vhost_data := $globals.vhosts }} {{- range $hostname, $vhost_data := $globals.vhosts }}
{{- $is_regexp := hasPrefix "~" $hostname }}
{{- $vhost_containers := list }} {{- $vhost_containers := list }}
{{- range $path, $vpath_data := $vhost_data.paths }} {{- range $path, $vpath_data := $vhost_data.paths }}
{{- $vpath_containers := list }} {{- $vpath_containers := list }}
{{- range $port, $vport_containers := $vpath_data.ports }} {{- range $port, $vport_containers := $vpath_data.ports }}
@ -644,6 +646,7 @@ proxy_set_header Proxy "";
"https_method" $https_method "https_method" $https_method
"http2_enabled" $http2_enabled "http2_enabled" $http2_enabled
"http3_enabled" $http3_enabled "http3_enabled" $http3_enabled
"is_regexp" $is_regexp
"acme_http_challenge_legacy" $acme_http_challenge_legacy "acme_http_challenge_legacy" $acme_http_challenge_legacy
"acme_http_challenge_enabled" $acme_http_challenge_enabled "acme_http_challenge_enabled" $acme_http_challenge_enabled
"server_tokens" $server_tokens "server_tokens" $server_tokens
@ -785,6 +788,23 @@ server {
{{- end }} {{- end }}
server { server {
{{- if $vhost.is_regexp }}
{{- if or
(printf "/etc/nginx/vhost.d/%s" $hostname | exists)
(printf "/etc/nginx/vhost.d/%s_location" $hostname | exists)
(printf "/etc/nginx/vhost.d/%s_location_override" $hostname | exists)
(printf "/etc/nginx/htpasswd/%s" $hostname | exists)
}}
# https://github.com/nginx-proxy/nginx-proxy/issues/2529#issuecomment-2437609249
# Support for vhost config file(s) named like a regexp ({{ $hostname }}) has been removed from nginx-proxy.
# Please name your vhost config file(s) with the sha1 of the regexp instead ({{ $hostname }} -> {{ sha1 $hostname }}) :
# - /etc/nginx/vhost.d/{{ sha1 $hostname }}
# - /etc/nginx/vhost.d/{{ sha1 $hostname }}_location
# - /etc/nginx/vhost.d/{{ sha1 $hostname }}_location_override
# - /etc/nginx/htpasswd/{{ sha1 $hostname }}
{{- end }}
{{- end }}
server_name {{ $hostname }}; server_name {{ $hostname }};
{{- if $vhost.server_tokens }} {{- if $vhost.server_tokens }}
server_tokens {{ $vhost.server_tokens }}; server_tokens {{ $vhost.server_tokens }};
@ -865,8 +885,10 @@ server {
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if (exists (printf "/etc/nginx/vhost.d/%s" $hostname)) }} {{- $vhostFileName := $vhost.is_regexp | ternary (sha1 $hostname) $hostname }}
include {{ printf "/etc/nginx/vhost.d/%s" $hostname }};
{{- if (exists (printf "/etc/nginx/vhost.d/%s" $vhostFileName)) }}
include {{ printf "/etc/nginx/vhost.d/%s" $vhostFileName }};
{{- else if (exists "/etc/nginx/vhost.d/default") }} {{- else if (exists "/etc/nginx/vhost.d/default") }}
include /etc/nginx/vhost.d/default; include /etc/nginx/vhost.d/default;
{{- end }} {{- end }}
@ -874,7 +896,8 @@ server {
{{- range $path, $vpath := $vhost.paths }} {{- range $path, $vpath := $vhost.paths }}
{{- template "location" (dict {{- template "location" (dict
"Path" $path "Path" $path
"Host" $hostname "Host" $vhostFileName
"HostIsRegexp" $vhost.is_regexp
"VhostRoot" $vhost.vhost_root "VhostRoot" $vhost.vhost_root
"VPath" $vpath "VPath" $vpath
) }} ) }}