Browse Source

support Env.ENABLE_SOCKS to listen at unix sock file

neil 3 years ago
parent
commit
1ddecfbc29
3 changed files with 22 additions and 0 deletions
  1. 3 0
      Dockerfile
  2. 2 0
      Dockerfile.alpine
  3. 17 0
      nginx.tmpl

+ 3 - 0
Dockerfile

@@ -31,5 +31,8 @@ include /etc/nginx/stream.d/*.conf; \
 RUN  sed -i '1s|^|load_module modules/ngx_http_js_module.so;\n|'  /etc/nginx/nginx.conf \
   && sed -i '1s|^|load_module modules/ngx_stream_js_module.so;\n|'  /etc/nginx/nginx.conf
 
+RUN mkdir -p /etc/nginx/socks
+
+
 VOLUME ["/etc/nginx/stream.d"]
 

+ 2 - 0
Dockerfile.alpine

@@ -26,6 +26,8 @@ include /etc/nginx/stream.d/*.conf; \
 RUN  sed -i '1s|^|load_module modules/ngx_http_js_module.so;\n|'  /etc/nginx/nginx.conf \
   && sed -i '1s|^|load_module modules/ngx_stream_js_module.so;\n|'  /etc/nginx/nginx.conf
 
+RUN mkdir -p /etc/nginx/socks
+
 
 VOLUME ["/etc/nginx/stream.d"]
 

+ 17 - 0
nginx.tmpl

@@ -243,6 +243,9 @@ upstream {{ $upstream_name }} {
 {{/* Get the first cert name defined by containers w/ the same vhost */}}
 {{ $certName := (first (groupByKeys $containers "Env.CERT_NAME")) }}
 
+{{ $enable_socks := (first (groupByKeys $containers "Env.ENABLE_SOCKS")) }}
+
+
 {{/* Get the best matching cert  by name for the vhost. */}}
 {{ $vhostCert := (closest (dir "/etc/nginx/certs") (printf "%s.crt" $host))}}
 
@@ -261,6 +264,10 @@ upstream {{ $upstream_name }} {
 server {
 	server_name {{ $host }};
 	listen {{ $external_http_port }} {{ $default_server }};
+{{ if eq $enable_socks "true" }}
+	listen unix:/etc/nginx/socks/{{ $host }}.{{ $external_http_port }}.sock;
+{{ end }}
+
 	{{ if $enable_ipv6 }}
 	listen [::]:{{ $external_http_port }} {{ $default_server }};
 	{{ end }}
@@ -284,6 +291,10 @@ server {
 server {
 	server_name {{ $host }};
 	listen {{ $external_https_port }} ssl http2 {{ $default_server }};
+{{ if eq $enable_socks "true" }}
+	listen unix:/etc/nginx/socks/{{ $host }}.{{ $external_https_port }}.sock ssl http2 {{ $default_server }};
+{{ end }}
+
 	{{ if $enable_ipv6 }}
 	listen [::]:{{ $external_https_port }} ssl http2 {{ $default_server }};
 	{{ end }}
@@ -358,6 +369,9 @@ server {
 server {
 	server_name {{ $host }};
 	listen {{ $external_http_port }} {{ $default_server }};
+{{ if eq $enable_socks "true" }}
+	listen unix:/etc/nginx/socks/{{ $host }}.{{ $external_http_port }}.sock;
+{{ end }}
 	{{ if $enable_ipv6 }}
 	listen [::]:80 {{ $default_server }};
 	{{ end }}
@@ -403,6 +417,9 @@ server {
 server {
 	server_name {{ $host }};
 	listen {{ $external_https_port }} ssl http2 {{ $default_server }};
+{{ if eq $enable_socks "true" }}
+	listen unix:/etc/nginx/socks/{{ $host }}.{{ $external_https_port }}.sock ssl http2 {{ $default_server }};
+{{ end }}
 	{{ if $enable_ipv6 }}
 	listen [::]:{{ $external_https_port }} ssl http2 {{ $default_server }};
 	{{ end }}