diff --git a/Dockerfile b/Dockerfile index 571817c..8179d97 100644 --- a/Dockerfile +++ b/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 diff --git a/README.md b/README.md index 230181a..de16e0c 100644 --- a/README.md +++ b/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/) diff --git a/nginx.tmpl b/nginx.tmpl index 86d1231..e7a4542 100644 --- a/nginx.tmpl +++ b/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 }};