server {
    listen 80;
    listen [::]:80;
    server_name __DOMAIN_PUBLIC__;

    location / {
        proxy_pass         http://localhost:__PORT_PUBLIC__;
        proxy_http_version 1.1;

        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_set_header X-Forwarded-Proto $scheme;

        # WebSocket support (Blazor Server SignalR circuits + WASM interop)
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection $http_connection;

        # Blazor Server SignalR circuits can be long-lived. Raise timeouts above the 60 s
        # nginx default so idle-but-active circuits (e.g. during audio streaming) are not
        # silently dropped.
        proxy_read_timeout 1200s;
        proxy_send_timeout 1200s;
    }
}
