Merge pull request #72 from BenHall/default_host

Ability to set a default host for nginx
This commit is contained in:
Jason Wilder 2015-05-14 10:00:04 -06:00
commit 503072c03f
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 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

View file

@ -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/)

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;
}
@ -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 }};