breunigs/hipsterpizza

View on GitHub
docs/nginx_configuration_example

Summary

Maintainability
Test Coverage
upstream hipsterpizza {
    server 127.0.0.1:10002;
}

# used for proper streaming through nginx. Requires nginx 1.3.13+.
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen       80;
    listen       [2001:4d88:2000:8::3001]:80 ipv6only=on deferred;
    # subdomains are okay, subdirectories won’t work
    server_name  pizza.yrden.de;

    access_log   /var/log/nginx/hipsterpizza.log;
    root         /var/www/hipsterpizza/public;

    keepalive_timeout 60;

    # serve assets directly from the file system
    location ~ ^/hipster/assets/  {
        gzip_static on;
        expires max;
        add_header Cache-Control public;
    }

    location / {
        proxy_pass http://hipsterpizza;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        # ensure redirects keep the same protocol (i.e. no https → http)
        proxy_set_header  X-Url-Scheme $scheme;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header  Host $http_host;
        proxy_redirect    off;

        # required for proper streaming. Requires nginx 1.3.13+
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}