Skip to content

Commit a3e64a9

Browse files
committed
Add support for custom external HTTP/HTTPS ports (see https://groups.google.com/forum/#!topic/nginx-proxy/0I2jevmgTLI)
1 parent 4443ee8 commit a3e64a9

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

nginx.tmpl

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }}
22

3+
{{ $external_http_port := coalesce $.Env.HTTP_PORT "80" }}
4+
{{ $external_https_port := coalesce $.Env.HTTPS_PORT "443" }}
5+
36
{{ define "upstream" }}
47
{{ if .Address }}
58
{{/* If we got the containers from swarm and this container's port is published to host, use host IP:PORT */}}
@@ -138,9 +141,9 @@ proxy_set_header Proxy "";
138141
{{ $enable_ipv6 := eq (or ($.Env.ENABLE_IPV6) "") "true" }}
139142
server {
140143
server_name _; # This is just an invalid value which will never trigger on a real hostname.
141-
listen 80;
144+
listen {{ $external_http_port }};
142145
{{ if $enable_ipv6 }}
143-
listen [::]:80;
146+
listen [::]:{{ $external_http_port }};
144147
{{ end }}
145148
access_log /var/log/nginx/access.log vhost;
146149
return 503;
@@ -149,9 +152,9 @@ server {
149152
{{ if (and (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
150153
server {
151154
server_name _; # This is just an invalid value which will never trigger on a real hostname.
152-
listen 443 ssl http2;
155+
listen {{ $external_https_port }} ssl http2;
153156
{{ if $enable_ipv6 }}
154-
listen [::]:443 ssl http2;
157+
listen [::]:{{ $external_https_port }} ssl http2;
155158
{{ end }}
156159
access_log /var/log/nginx/access.log vhost;
157160
return 503;
@@ -241,9 +244,9 @@ upstream {{ $upstream_name }} {
241244
{{ if eq $https_method "redirect" }}
242245
server {
243246
server_name {{ $host }};
244-
listen 80 {{ $default_server }};
247+
listen {{ $external_http_port }} {{ $default_server }};
245248
{{ if $enable_ipv6 }}
246-
listen [::]:80 {{ $default_server }};
249+
listen [::]:{{ $external_http_port }} {{ $default_server }};
247250
{{ end }}
248251
access_log /var/log/nginx/access.log vhost;
249252
return 301 https://$host$request_uri;
@@ -252,9 +255,9 @@ server {
252255

253256
server {
254257
server_name {{ $host }};
255-
listen 443 ssl http2 {{ $default_server }};
258+
listen {{ $external_https_port }} ssl http2 {{ $default_server }};
256259
{{ if $enable_ipv6 }}
257-
listen [::]:443 ssl http2 {{ $default_server }};
260+
listen [::]:{{ $external_https_port }} ssl http2 {{ $default_server }};
258261
{{ end }}
259262
access_log /var/log/nginx/access.log vhost;
260263

@@ -322,7 +325,7 @@ server {
322325

323326
server {
324327
server_name {{ $host }};
325-
listen 80 {{ $default_server }};
328+
listen {{ $external_http_port }} {{ $default_server }};
326329
{{ if $enable_ipv6 }}
327330
listen [::]:80 {{ $default_server }};
328331
{{ end }}
@@ -365,9 +368,9 @@ server {
365368
{{ if (and (not $is_https) (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
366369
server {
367370
server_name {{ $host }};
368-
listen 443 ssl http2 {{ $default_server }};
371+
listen {{ $external_https_port }} ssl http2 {{ $default_server }};
369372
{{ if $enable_ipv6 }}
370-
listen [::]:443 ssl http2 {{ $default_server }};
373+
listen [::]:{{ $external_https_port }} ssl http2 {{ $default_server }};
371374
{{ end }}
372375
access_log /var/log/nginx/access.log vhost;
373376
return 500;

0 commit comments

Comments
 (0)