user root; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log off; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream backend_snipt { server 127.0.0.1:8000; } server { listen 80; server_name *.snipt.net; if ($host ~* "^([^.]+(\.[^.]+)*)\.snipt.net$"){ set $subd $1; rewrite ^(.*)$ https://$subd.snipt.net$1 permanent; break; } } server { listen 80; server_name snipt.net www.snipt.net beta.snipt.net; rewrite ^(.*) https://snipt.net$1 permanent; } server { listen 443; server_name www.snipt.net; access_log off; error_log /logs/nginx.log; ssl on; ssl_certificate /etc/certs/2013-dnsimple/snipt.net.crt; ssl_certificate_key /etc/certs/2013-dnsimple/snipt.net.key; rewrite ^(.*) https://snipt.net$1 permanent; } server { listen 443; server_name snipt.net *.snipt.net; access_log off; error_log /logs/nginx.log; ssl on; ssl_certificate /etc/certs/2013-dnsimple/snipt.net.crt; ssl_certificate_key /etc/certs/2013-dnsimple/snipt.net.key; location ~* /favicon.ico { root /app/snipt/static/img/; expires max; } location / { rewrite_by_lua ' if string.find(ngx.var.host, "_") then local newHost, n = ngx.re.gsub(ngx.var.host, "_", "-") ngx.redirect(ngx.var.scheme .. "://" .. newHost .. ngx.var.uri) end '; proxy_pass http://backend_snipt; proxy_set_header Host $host; } location /static/ { alias /app/snipt/static/; expires max; } location /public/feed/ { rewrite ^/public/feed/$ https://snipt.net/public/?rss permanent; } } server { listen 80 default_server; access_log off; error_log /logs/nginx.log; location ~* /favicon.ico { root /app/snipt/static/img/; expires max; } location / { proxy_pass http://backend_snipt; proxy_set_header Host $host; } location /static/ { alias /app/snipt/static/; expires max; } } }