This commit is contained in:
Paul Dorn 2018-09-18 19:55:36 +00:00 committed by GitHub
commit 8c90aa4288
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -151,6 +151,12 @@ upstream {{ $upstream_name }} {
{{ end }}
}
{{/* Get the VIRTUAL_LISTEN_HTTP defined by containers w/ the same vhost, falling back to "80" */}}
{{ $listen_http := (groupByKeys $containers "Env.VIRTUAL_LISTEN_HTTP") }}
{{/* Get the VIRTUAL_LISTEN_HTTPS defined by containers w/ the same vhost, falling back to "443" */}}
{{ $listen_https := (groupByKeys $containers "Env.VIRTUAL_LISTEN_HTTPS") }}
{{ $default_host := or ($.Env.DEFAULT_HOST) "" }}
{{ $default_server := index (dict $host "" $default_host "default_server") $host }}
@ -193,9 +199,17 @@ upstream {{ $upstream_name }} {
{{ if eq $https_method "redirect" }}
server {
server_name {{ $host }};
{{ if not (intersect $listen_http (split "80" ",")) }}
listen 80 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_http }}
listen {{ $lport }} {{ $default_server }};
{{ end }}
{{ if $enable_ipv6 }}
listen [::]:80 {{ $default_server }};
{{ range $i, $lport := $listen_http }}
listen [::]:{{ $lport }} {{ $default_server }};
{{ end }}
{{ end }}
access_log /var/log/nginx/access.log vhost;
return 301 https://$host$request_uri;
@ -204,10 +218,21 @@ server {
server {
server_name {{ $host }};
{{ if not (intersect $listen_https (split "443" ",")) }}
listen 443 ssl http2 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_https }}
listen {{ $lport }} ssl http2 {{ $default_server }};
{{ end }}
{{ if $enable_ipv6 }}
{{ if not (intersect $listen_https (split "443" ",")) }}
listen [::]:443 ssl http2 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_https }}
listen [::]:{{ $lport }} ssl http2 {{ $default_server }};
{{ end }}
{{ end }}
access_log /var/log/nginx/access.log vhost;
{{ if eq $network_tag "internal" }}
@ -302,10 +327,21 @@ server {
server {
server_name {{ $host }};
{{ if not (intersect $listen_http (split "80" ",")) }}
listen 80 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_http }}
listen {{ $lport }} {{ $default_server }};
{{ end }}
{{ if $enable_ipv6 }}
{{ if not (intersect $listen_http (split "80" ",")) }}
listen [::]:80 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_http }}
listen [::]:{{ $lport }} {{ $default_server }};
{{ end }}
{{ end }}
access_log /var/log/nginx/access.log vhost;
{{ if eq $network_tag "internal" }}
@ -345,9 +381,19 @@ server {
{{ if (and (not $is_https) (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
server {
server_name {{ $host }};
listen 443 ssl http2 {{ $default_server }};
{{ if not (intersect $listen_https (split "443" ",")) }}
listen 443 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_https }}
listen {{ $lport }} {{ $default_server }};
{{ end }}
{{ if $enable_ipv6 }}
listen [::]:443 ssl http2 {{ $default_server }};
{{ if not (intersect $listen_https (split "443" ",")) }}
listen [::]:443 {{ $default_server }};
{{ end }}
{{ range $i, $lport := $listen_https }}
listen [::]:{{ $lport }} {{ $default_server }};
{{ end }}
{{ end }}
access_log /var/log/nginx/access.log vhost;
return 500;