Поделиться через


Размещение и развертывание ASP.NET Core Blazor WebAssembly с Nginx

Примечание.

Это не последняя версия этой статьи. Актуальная версия — см. версию этой статьи для .NET 9.

Предупреждение

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. Актуальная версия — см. версию этой статьи для .NET 9.

Это важно

Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.

Актуальная версия — см. версию этой статьи для .NET 9.

В этой статье объясняется, как разместить и развернуть Blazor WebAssembly с помощью Nginx.

Следующий файл nginx.conf упрощен для демонстрации того, как настроить Nginx для отправки файла index.html, когда не удается найти соответствующий файл на диске.

events { }
http {
    server {
        listen 80;

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

При установке ограничения скорости всплеска NGINX с использованием limit_req и limit_req_zone, приложениям может потребоваться большое значение burst/rate для обработки относительно большого количества запросов приложения. Изначально задайте для этого параметра значение не менее 60.

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

        location / {
            ...

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

Увеличьте значение, если средства разработчика в браузере или средство контроля сетевого трафика сообщают о том, что запросы возвращают код состояния 503, служба недоступна.

Дополнительные сведения о конфигурации веб-сервера Nginx в рабочей среде см. в разделе Создание файлов конфигурации NGINX Plus и NGINX.

Размещенное развертывание в Linux (Nginx)

Настройте приложение с ForwardedHeadersOptions для перенаправления заголовков X-Forwarded-For и X-Forwarded-Proto, следуя инструкциям в разделе Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки.

Дополнительные сведения о настройке базового пути приложения, включая конфигурацию пути вложенного приложения, см. в разделе ASP.NET Core Blazor базовый путь приложения.

Следуйте указаниям для приложения ASP.NET Core SignalR со следующими изменениями:

  • Удалите конфигурацию для буферизации прокси-сервера (proxy_buffering off;), так как этот параметр применяется только к событиям, отправленным сервером (SSE), которые не относятся к взаимодействию между клиентом и сервером в приложении Blazor.

  • Измените путь location с /hubroute (location /hubroute { ... }) на путь к вложенному приложению /{PATH} (location /{PATH} { ... }), где заполнитель {PATH} является путем к вложенному приложению.

    В следующем примере сервер настраивается для приложения, отвечающего на запросы по корневому пути /:

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

    В следующем примере настраивается путь вложенного приложения /blazor:

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

Дополнительные ресурсы