Partilhar via


Hospede e implante o ASP.NET Core Blazor WebAssembly com o Nginx

Observação

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.

Advertência

Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.

Importante

Estas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

Para a versão atual, consulte a versão .NET 9 deste artigo.

Este artigo explica como hospedar e implantar Blazor WebAssembly usando o Nginx.

O seguinte arquivo de nginx.conf é simplificado para mostrar como configurar o Nginx para enviar o arquivo index.html sempre que não conseguir encontrar um arquivo correspondente no disco.

events { }
http {
    server {
        listen 80;

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

Ao definir o limite da taxa de intermitência NGINX com limit_req e limit_req_zone, Blazor WebAssembly os aplicativos podem exigir grandes burst/rate valores de parâmetro para acomodar o número relativamente grande de solicitações feitas por um aplicativo. Inicialmente, defina o valor como pelo menos 60:

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

        location / {
            ...

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

Aumente o valor se as ferramentas de desenvolvedor do navegador ou uma ferramenta de tráfego de rede indicarem que as solicitações estão recebendo um código de status 503 - Serviço Indisponível.

Para obter mais informações sobre a configuração do servidor Web Nginx de produção, consulte Criando arquivos de configuração NGINX Plus e NGINX.

Implementação hospedada no Linux (Nginx)

Configure a aplicação com ForwardedHeadersOptions para redirecionar os cabeçalhos X-Forwarded-For e X-Forwarded-Proto, seguindo as orientações em Configurar ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.

Para obter mais informações sobre como definir o caminho base do aplicativo, incluindo a configuração do caminho do subaplicativo, consulte ASP.NET caminho base do aplicativo principalBlazor.

Siga as orientações para um aplicativo ASP.NET Core SignalR com as seguintes alterações:

  • Remova a configuração para buffer de proxy (proxy_buffering off;) porque a configuração só se aplica a Eventos Enviados pelo Servidor (SSE), que não são relevantes para as interações cliente-servidor do Blazor aplicativo.

  • Altere o caminho location de /hubroute (location /hubroute { ... }) para o caminho do subaplicativo /{PATH} (location /{PATH} { ... }), onde o espaço reservado {PATH} é o caminho do subaplicativo.

    O exemplo a seguir configura o servidor para um aplicativo que responde a solicitações no caminho raiz /:

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

    O exemplo a seguir configura o caminho do subaplicativo de /blazor:

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

Recursos adicionais