Sdílet prostřednictvím


Hostování a nasazení ASP.NET Core Blazor WebAssembly s Nginxem

Poznámka:

Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.

Výstraha

Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální vydání článku ve verzi .NET 9 najdete zde.

Tento článek vysvětluje, jak hostovat a nasazovat Blazor WebAssembly pomocí serveru Nginx.

Následující nginx.conf soubor je zjednodušený a ukazuje, jak nakonfigurovat Nginx tak, aby soubor odesílal index.html , kdykoli nemůže najít odpovídající soubor na disku.

events { }
http {
    server {
        listen 80;

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

Při nastavování limitu rychlosti burstu NGINX s a limit_req, aplikace limit_req_zone můžou vyžadovat velké hodnoty parametrů Blazor WebAssemblyburst/, aby vyhovovaly relativně velkému počtu požadavků provedených aplikací. Zpočátku nastavte hodnotu alespoň na 60:

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

        location / {
            ...

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

Zvyšte hodnotu, pokud vývojářské nástroje prohlížeče nebo nástroj síťového provozu indikují, že požadavky dostávají stavový kód 503 – Služba není k dispozici .

Další informace o konfiguraci webového serveru Nginx v produkčním prostředí naleznete v tématu Vytváření konfiguračních souborů NGINX Plus a NGINX.

Hostované nasazení v Linuxu (Nginx)

Nakonfigurujte aplikaci ForwardedHeadersOptions, aby předávala hlavičky X-Forwarded-For a X-Forwarded-Proto podle pokynů v Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení.

Další informace o nastavení základní cesty aplikace, včetně konfigurace cesty dílčí aplikace, najdete v tématu ASP.NET Blazor Základní cesta aplikace.

Postupujte podle pokynů pro aplikaci ASP.NET Core s následujícími změnami:

  • Odeberte konfiguraci pro vyrovnávání paměti proxy serveru (proxy_buffering off;), protože nastavení platí jen pro události odeslané serverem (SSE), které nejsou relevantní pro interakce mezi klientem a serverem aplikace Blazor.

  • Změňte cestu location z /hubroute (location /hubroute { ... }) na cestu dílčí aplikace /{PATH} (location /{PATH} { ... }), kde zástupný symbol {PATH} je cesta dílčí aplikace.

    Následující příklad nakonfiguruje server pro aplikaci, která reaguje na požadavky v kořenové cestě /:

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

    Následující příklad konfiguruje cestu k podaplikaci /blazor:

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

Další zdroje informací