From 02d44ccbaae729f9d1d7438f4d6221be3fc481f6 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Sun, 26 Feb 2017 19:01:07 -0300 Subject: [PATCH] Fix client source IP address --- controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl index 07b6f5782..4684a497c 100644 --- a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl +++ b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl @@ -1,4 +1,8 @@ -{{ $cfg := .Cfg }}{{ $healthzURI := .HealthzURI }}{{ $backends := .Backends }}{{ $proxyHeaders := .ProxySetHeaders }} +{{ $cfg := .Cfg }} +{{ $healthzURI := .HealthzURI }} +{{ $backends := .Backends }} +{{ $proxyHeaders := .ProxySetHeaders }} +{{ $passthroughBackends := .PassthroughBackends }} daemon off; worker_processes {{ $cfg.WorkerProcesses }}; @@ -208,7 +212,7 @@ http { listen [::]:80{{ if $cfg.UseProxyProtocol }} proxy_protocol{{ end }}{{ if eq $index 0 }} ipv6only=off{{end}}{{ if eq $server.Hostname "_"}} default_server reuseport backlog={{ $backlogSize }}{{end}}; {{/* Listen on 442 because port 443 is used in the stream section */}} {{/* This listen cannot contains proxy_protocol directive because port 443 is in charge of decoding the protocol */}} - {{ if not (empty $server.SSLCertificate) }}listen 442 {{ if eq $server.Hostname "_"}} default_server reuseport backlog={{ $backlogSize }}{{end}} ssl {{ if $cfg.UseHTTP2 }}http2{{ end }}; + {{ if not (empty $server.SSLCertificate) }}listen {{ if gt (len $passthroughBackends) 0 }}442{{ else }}[::]:443 {{ end }}{{ if eq $server.Hostname "_"}} default_server reuseport backlog={{ $backlogSize }}{{end}} ssl {{ if $cfg.UseHTTP2 }}http2{{ end }}; {{/* comment PEM sha is required to detect changes in the generated configuration and force a reload */}} # PEM sha: {{ $server.SSLPemChecksum }} ssl_certificate {{ $server.SSLCertificate }}; @@ -434,6 +438,7 @@ http { } stream { + {{ if gt (len $passthroughBackends) 0 }} # map FQDN that requires SSL passthrough map $ssl_preread_server_name $stream_upstream { {{ range $i, $passthrough := .PassthroughBackends }} @@ -465,6 +470,7 @@ stream { proxy_pass $stream_upstream; ssl_preread on; } + {{ end }} # TCP services {{ range $i, $tcpServer := .TCPBackends }}