Ability to set a default host for nginx

This commit is contained in:
Ben Hall 2014-12-24 12:21:40 +00:00
parent 6d646d92f8
commit 30a53fb60a
3 changed files with 19 additions and 3 deletions

View File

@ -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 64;/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

View File

@ -25,6 +25,13 @@ If your container exposes multiple ports, nginx-proxy will default to the servic
If you need to support multipe virtual hosts for a container, you can separate each entry with commas. For example, `foo.bar.com,baz.bar.com,bar.com` and each host will be setup the same.
### 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/)

View File

@ -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;
}
@ -115,7 +115,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 }}
location / {
proxy_pass http://{{ $host }};