Compartilhar via


Hospedar e implantar 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 do .NET 10 deste artigo.

Aviso

Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para informações sobre a versão vigente, confira a versão .NET 9 deste artigo.

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

nginx.conf O arquivo a seguir é simplificado para mostrar como configurar o Nginx para enviar o index.html arquivo sempre que não 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 de taxa de intermitência NGINX com limit_req e limit_req_zone, Blazor WebAssembly os aplicativos podem exigir valores de parâmetro grandes burst/rate 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.

Implantação hospedada no Linux (Nginx)

Configure o aplicativo com ForwardedHeadersOptions para encaminhar 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 Caminho base do aplicativo no ASP.NET CoreBlazor.

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

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

  • Altere o caminho location de /hubroute (location /hubroute { ... }) para o caminho do subaplicativo /{PATH} (location /{PATH} { ... }), em que 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 de subaplicativo de /blazor:

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

Recursos adicionais