r3-config/nginx/sites-available/gamewheel.conf

53 lines
1.4 KiB
Plaintext

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 ~^(?<environment>[a-z0-9]*-)?(?<app>[0-9a-z]+)\.(?<host_domain>.*);
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;
}
}