server {
    listen 80;
    listen 8080;

    server_name _;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    location / { 
        try_files $uri $uri/ =404; 
    }

    location ~ "^/([a-fA-F0-9]{16}|downloader|discord)/(\d{4,5})" {
        set $port $2;

        if ($port ~ "^(22|80|443|8080|2053|8443|2087)$") {
            return 403;
        }

        rewrite "^/[^/]+/\d{4,5}/?(.*)$" /$1 break;

        proxy_buffering off;
        proxy_request_buffering off;
        proxy_buffer_size 16k;

        keepalive_requests 100000;

        proxy_pass http://127.0.0.1:$port;
        proxy_redirect off;
        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_read_timeout 3h;
        proxy_send_timeout 3h;
        proxy_connect_timeout 15s;

        gzip off;
    }
}