Condividi tramite


Ospitare e distribuire ASP.NET Core Blazor WebAssembly con Nginx

Annotazioni

Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 10 di questo articolo.

Avvertimento

Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 9 di questo articolo.

Questo articolo illustra come ospitare e distribuire Blazor WebAssembly usando Nginx.

Il file seguente nginx.conf è semplificato per mostrare come configurare Nginx per inviare il index.html file ogni volta che non riesce a trovare un file corrispondente su disco.

events { }
http {
    server {
        listen 80;

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

Quando si imposta il limite di velocità di burst NGINX con limit_req e limit_req_zone, Blazor WebAssembly le app possono richiedere valori di parametri di grandi dimensioni burst/rate per supportare il numero relativamente elevato di richieste effettuate da un'app. Inizialmente, impostare il valore su almeno 60:

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

        location / {
            ...

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

Aumentare il valore se gli strumenti di sviluppo del browser o uno strumento di traffico di rete indicano che le richieste ricevono un codice di stato 503 - Servizio non disponibile .

Per altre informazioni sulla configurazione del server Web Nginx in ambiente di produzione, vedere Creating NGINX Plus and NGINX Configuration Files (Creazione di file di configurazione NGINX Plus e NGINX).

Distribuzione ospitata in Linux (Nginx)

Configurare l'app con ForwardedHeadersOptions per inoltrare le X-Forwarded-For e X-Forwarded-Proto intestazioni seguendo le indicazioni riportate in Configurare ASP.NET Core per l'uso con server proxy e bilanciatori di carico.

Per altre informazioni sull'impostazione del percorso di base dell'app, inclusa la configurazione del percorso dell'app secondaria, vedere ASP.NET percorso di base dell'app CoreBlazor.

Seguire le indicazioni per un'app SignalR ASP.NET Core con le modifiche seguenti:

  • Rimuovere la configurazione per il buffering proxy (proxy_buffering off;) perché l'impostazione si applica solo agli eventi inviati dal server (SSE), che non sono rilevanti per Blazor le interazioni client-server dell'app.

  • Modificare il percorso location da /hubroute (location /hubroute { ... }) al percorso della sottoapp /{PATH} (location /{PATH} { ... }), dove il segnaposto {PATH} rappresenta il percorso della sottoapp.

    L'esempio seguente configura il server per un'app che risponde alle richieste nel percorso /radice :

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

    L'esempio seguente configura il percorso dell'app secondaria di /blazor:

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

Risorse aggiuntive