Hantera och distribuera ASP.NET Core Blazor WebAssembly med Nginx

Anmärkning

Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i .NET 10-versionen av den här artikeln.

Varning

Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .

Den här artikeln beskriver hur du är värd för och distribuerar Blazor WebAssembly med Nginx.

Följande nginx.conf fil är förenklad för att visa hur du konfigurerar Nginx för att skicka index.html filen när den inte kan hitta en motsvarande fil på disken.

events { }
http {
    server {
        listen 80;

        location / {
            root      /usr/share/nginx/html;
            try_files $uri $uri/ /index.html =404;
        }
    }
}

När du ställer in gränsen för NGINX-burstfrekvens med limit_req och limit_req_zonekan Blazor WebAssembly appar kräva stora burst/rate parametervärden för att hantera det relativt stora antalet begäranden som görs av en app. Ställ inledningsvis in värdet på minst 60:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=60r/s;
    server {
        ...

        location / {
            ...

            limit_req zone=one burst=60 nodelay;
        }
    }
}

Öka värdet om utvecklarverktyg för webbläsare eller ett verktyg för nätverkstrafik anger att begäranden får statuskoden 503 – Tjänsten är inte tillgänglig .

Mer information om Nginx-webbserverkonfiguration för produktion finns i Skapa NGINX Plus- och NGINX-konfigurationsfiler.

Värdbaserad distribution i Linux (Nginx)

Konfigurera appen med ForwardedHeadersOptions för att vidarebefordra X-Forwarded-For huvudena och X-Forwarded-Proto genom att följa anvisningarna i Konfigurera ASP.NET Core så att den fungerar med proxyservrar och lastbalanserare.

Mer information om hur du anger appens bassökväg, inklusive underappssökvägskonfiguration, finns i ASP.NET Grundläggande sökväg för Core-appenBlazor.

Följ riktlinjerna för en ASP.NET Core SignalR-app med följande ändringar:

  • Ta bort konfigurationen för proxybuffertning (proxy_buffering off;) eftersom inställningen endast gäller för Server-Sent Events (SSE), som inte är relevanta för Blazor app-klient-server-interaktioner.

  • location Ändra sökvägen från /hubroute (location /hubroute { ... }) till underappssökvägen /{PATH} (location /{PATH} { ... }), där {PATH} platshållaren är underappsökvägen.

    I följande exempel konfigureras servern för en app som svarar på begäranden på rotsökvägen /:

    http {
        server {
            ...
            location / {
                ...
            }
        }
    }
    

    I följande exempel konfigureras sökvägen för underappen /blazor :

    http {
        server {
            ...
            location /blazor {
                ...
            }
        }
    }
    

Ytterligare resurser