Partage via


Héberger et déployer ASP.NET Core Blazor WebAssembly avec Nginx

Note

Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 10 de cet article.

Avertissement

Cette version d'ASP.NET Core n'est plus prise en charge. Pour plus d’informations, consultez la stratégie de support .NET et .NET Core. Pour la version actuelle, consultez la version .NET 9 de cet article.

Cet article explique comment héberger et déployer Blazor WebAssembly à l’aide de Nginx.

Le fichier suivant nginx.conf est simplifié pour montrer comment configurer Nginx pour envoyer le index.html fichier chaque fois qu’il ne peut pas trouver un fichier correspondant sur le disque.

events { }
http {
    server {
        listen 80;

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

Lors de la définition de la limite de débit de rafale NGINX avec limit_req et limit_req_zone, Blazor WebAssembly les applications peuvent nécessiter de grandes burst/rate valeurs de paramètres pour prendre en charge le nombre relativement élevé de requêtes effectuées par une application. Initialement, définissez la valeur sur au moins 60 :

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

        location / {
            ...

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

Augmentez la valeur si les outils de développement du navigateur ou un outil de trafic réseau indiquent que les demandes reçoivent un code d’état 503 - Service Indisponible .

Pour plus d’informations sur la configuration du serveur web Nginx de production, consultez Création de fichiers de configuration NGINX Plus et NGINX.

Déploiement hébergé sur Linux (Nginx)

Configurez l'application avec ForwardedHeadersOptions pour transférer les en-têtes X-Forwarded-For et X-Forwarded-Proto en suivant les instructions de Configurer ASP.NET Core pour travailler avec les serveurs proxy et les équilibreurs de charge.

Pour plus d’informations sur la définition du chemin de base de l’application, y compris la configuration du chemin d’accès de sous-application, consultez ASP.NET chemin de base de l’application CoreBlazor.

Suivez les instructions pour une application ASP.NET Core SignalR avec les modifications suivantes :

  • Supprimez la configuration de la mise en mémoire tampon du proxy (proxy_buffering off;), car le paramètre s’applique uniquement aux événements envoyés par le serveur (SSE), qui ne sont pas pertinents pour les interactions client-serveur de l’applicationBlazor.

  • Remplacez le chemin location de /hubroute (location /hubroute { ... }) par le chemin de la sous-application /{PATH} (location /{PATH} { ... }), où le « placeholder » {PATH} représente le chemin d’accès de la sous-application.

    L’exemple suivant configure le serveur pour une application qui répond aux demandes au niveau du chemin /racine :

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

    L’exemple suivant configure le chemin d’accès de la sous-application de /blazor:

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

Ressources supplémentaires