Sfoglia il codice sorgente

Merge pull request #72 from BenHall/default_host

Ability to set a default host for nginx
Jason Wilder 10 anni fa
parent
commit
503072c03f
3 ha cambiato i file con 19 aggiunte e 3 eliminazioni
  1. 1 1
      Dockerfile
  2. 7 0
      README.md
  3. 11 2
      nginx.tmpl

+ 1 - 1
Dockerfile

@@ -13,7 +13,7 @@ RUN apt-get update \
 RUN echo "daemon off;" >> /etc/nginx/nginx.conf \
  && sed -i 's/^http {/&\n    server_names_hash_bucket_size 128;/g' /etc/nginx/nginx.conf
 
- # Install Forego
+# Install Forego
 RUN wget -P /usr/local/bin https://godist.herokuapp.com/projects/ddollar/forego/releases/current/linux-amd64/forego \
  && chmod u+x /usr/local/bin/forego
 

+ 7 - 0
README.md

@@ -35,6 +35,13 @@ You can also use wildcards at the beginning and the end of host name, like `*.ba
 
 If you would like to connect to your backend using HTTPS instead of HTTP, set `VIRTUAL_PROTO=https` on the backend container.
 
+### Default Host
+
+To set the default host for nginx use the env var `DEFAULT_HOST=foo.bar.com` for example
+
+    $ docker run -d -p 80:80 -e DEFAULT_HOST=foo.bar.com -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
+
+
 ### Separate Containers
 
 nginx-proxy can also be run as two separate containers using the [jwilder/docker-gen](https://index.docker.io/u/jwilder/docker-gen/)

+ 11 - 2
nginx.tmpl

@@ -32,7 +32,7 @@ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
 
 server {
-	listen 80 default_server;
+	listen 80;
 	server_name _; # This is just an invalid value which will never trigger on a real hostname.
 	return 503;
 }
@@ -122,7 +122,16 @@ server {
 {{ else }}
 
 server {
-	server_name {{ $host }};
+	{{ if $.Env.DEFAULT_HOST }}
+	  {{ if eq $.Env.DEFAULT_HOST $host }}
+	    listen 80 default_server;
+	    server_name {{ $host }};
+	  {{ else }}
+	    server_name {{ $host }};
+          {{ end }}
+	{{ else }}
+	  server_name {{ $host }};
+	{{ end }}
 
 	{{ if (exists (printf "/etc/nginx/vhost.d/%s" $host)) }}
 	include {{ printf "/etc/nginx/vhost.d/%s" $host }};