server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; return 301 https://$host$request_uri; } server { listen 443 ssl default_server; listen [::]:443 ssl default_server ipv6only=on; include /etc/nginx/ssl/ssl.conf; server_name ~^(?[a-z0-9]*-)?(?[0-9a-z]+)\.(?.*); location ~ { root /usr/share/gamewheel/$app; add_header Access-Control-Allow-Origin $http_origin; autoindex on; try_files $uri $uri/ @node; } location @node { # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Normal parameters proxy_pass_request_headers on; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; # Set Environment, App, and Domain proxy_set_header X-Gamewheel-Env $environment; proxy_set_header X-Gamewheel-App $app; proxy_set_header X-Gamewheel-Host $host_domain; # Pass Everything to our app proxy_pass http://$app; proxy_ssl_session_reuse off; proxy_set_header Host $http_host; proxy_redirect off; # If our app fails - we send it to gate error_page 500 502 503 504 = @gate; } location @gate { proxy_pass http://gate; } }