Использование Kestrel с обратным прокси-сервером

Kestrel можно использовать самостоятельно или с обратным прокси-сервером. Обратный прокси-сервер получает HTTP-запросы из сети и пересылает их в Kestrel. Примеры обратных прокси-серверов:

Kestrel используется в качестве пограничного (с выходом в Интернет) веб-сервера:

Kestrel communicates directly with the Internet without a reverse proxy server

Kestrel используется в конфигурации обратного прокси-сервера.

Kestrel communicates indirectly with the Internet through a reverse proxy server, such as IIS, Nginx, or Apache

Любая из этих конфигураций — с обратным прокси-сервером и без него — является поддерживаемой конфигурацией для размещения.

Когда Kestrel используется в качестве пограничного сервера без обратного прокси-сервера, обращение нескольких процессов к одним и тем же IP-адресам и портам не поддерживается. Когда Kestrel настроен на ожидание передачи данных от порта, Kestrel обрабатывает весь трафик для этого порта независимо от заголовка запросов Host. Поэтому обратный прокси-сервер, который может совместно использовать порты, способен пересылать запросы в Kestrel с уникальными IP-адресом и портом.

Даже если обратный прокси-сервер не требуется, его использование может оказаться удобным.

Обратный прокси-сервер:

  • Может ограничить общедоступную контактную зону размещенных на нем приложений.
  • Предоставляет дополнительный уровень конфигурации и защиты.
  • Может лучше интегрироваться с существующей инфраструктурой.
  • Упрощает балансировку нагрузки и настройку безопасного взаимодействия (HTTPS). Только обратный прокси-сервер требует сертификата X.509 для общедоступного домена. Этот сервер может взаимодействовать с серверами приложения во внутренней сети с помощью обычного HTTP или HTTPS с локальными управляемыми сертификатами. Внутренний ПРОТОКОЛ HTTPS повышает безопасность, но добавляет значительные издержки.

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

Для размещения в конфигурации обратного прокси-сервера требуется фильтрация узлов.

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

Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки