Freigeben über


Hosten und Bereitstellen von ASP.NET Core Blazor WebAssembly mit Nginx

Hinweis

Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 10-Version dieses Artikels.

Warnung

Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der .NET- und .NET Core-Supportrichtlinie. Informationen zum aktuellen Release finden Sie in der .NET 9-Version dieses Artikels.

In diesem Artikel wird erläutert, wie Sie Blazor WebAssembly mit Nginx hosten und bereitstellen.

Die folgende nginx.conf Datei wird vereinfacht, um zu zeigen, wie Nginx so konfiguriert wird, dass die index.html Datei gesendet wird, wenn sie keine entsprechende Datei auf dem Datenträger finden kann.

events { }
http {
    server {
        listen 80;

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

Beim Festlegen des NGINX-Platzratenlimits mit limit_req und limit_req_zoneapps ist möglicherweise ein großer Blazor WebAssemblyburst/ Parameterwert erforderlich, rate um die relativ große Anzahl von Anforderungen einer App zu berücksichtigen. Legen Sie zunächst den Wert auf mindestens 60 fest:

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

        location / {
            ...

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

Erhöhen Sie den Wert, wenn Browserentwicklertools oder ein Netzwerkdatenverkehrstool angibt, dass Anforderungen einen Statuscode "503 – Dienst nicht verfügbar " erhalten.

Weitere Informationen zur Produktions-Nginx-Webserverkonfiguration finden Sie unter Erstellen von NGINX Plus- und NGINX-Konfigurationsdateien.

Gehostete Bereitstellung unter Linux (Nginx)

Konfigurieren Sie die App mit ForwardedHeadersOptions, um die X-Forwarded-For- und X-Forwarded-Proto-Kopfzeilen weiterzuleiten, indem Sie den Leitfaden in Konfigurieren von ASP.NET Core für die Arbeit mit Proxyservern und Lastenausgleichsmodulen befolgen.

Weitere Informationen zum Festlegen des Basispfads der App, einschließlich der Konfiguration des Unter-App-Pfads, finden Sie unter ASP.NET Core-App-BasispfadBlazor.

Folgen Sie der Anleitung für eine SignalR-App in ASP.NET Core mit den folgenden Änderungen:

  • Entfernen Sie die Konfiguration für die Proxypufferung (proxy_buffering off;), da die Einstellung nur für vom Server gesendete Ereignisse (Server-Sent Events, SSE) gilt, die für die Interaktion zwischen Blazor-App-Client und -Server nicht relevant sind.

  • Ändern Sie den location Pfad von /hubroute (location /hubroute { ... }) in den Unter-App-Pfad /{PATH} (location /{PATH} { ... }), wobei der Platzhalter der {PATH} Unter-App-Pfad ist.

    Im folgenden Beispiel wird der Server für eine App konfiguriert, die auf Anforderungen im Stammpfad /antwortet:

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

    Das folgende Beispiel konfiguriert den Sub-App-Pfad von /blazor:

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

Weitere Ressourcen