Модель хостинга ASP.NET Core¶
Как мы обсуждали в первой главе, приложения ASP.NET Core, по сути, консольные. Есть функция static void main, служащая точкой входа, как стандартное консольное приложение .NET.
Внутри процесса приложения работает web-сервер Kestrel, который предоставляет функциональность HTTP, чтобы получать запросы и возвращать ответы клиентам. Kestrel передает все запросы в код приложения.

Такая модель хостинга отделяет сервер и обратный прокси от самого приложения, чтобы одно и то же приложение могло без изменений в коде работать в нескольких окружениях.
Использование обратного прокси-сервера даёт несколько преимуществ:
- безопасность — обратные прокси-серверы разработаны для защиты от вредоносного трафика, поэтому, как правило, хорошо протестированы;
- производительность — можно настроить прокси-сервер для повышения производительности путём агрессивного кэширования запросов;
- управление процессами — некоторые обратные прокси-серверы могут работать как мониторы или планировщики, гарантируя, что в случае сбоя приложения прокси-сервер сможет перезапустить его;
- поддержка нескольких приложений — обычно на одном сервере работают несколько приложений. Обратный прокси-сервер упрощает поддержку такого сценария с помощью имени хоста запроса.
Однако, в использовании прокси-сервера есть и недостатки:
- сложность — сложность в настройке обратного прокси может привести к ошибкам;
- межпроцессное взаимодействие — обратный прокси работает в своём процессе; межпроцессное взаимодействие может замедлять работу комплекса;
- ограниченные функции — не все обратные прокси поддерживают те же функции, что и ASP.NET Core. Например, Kestrel поддерживает протокол HTTP/2, но если обратный прокси-сервер не поддерживает его, то он не будет использован.
Так или иначе, прежде чем размещать приложение на сервере, его нужно опубликовать.
Запуск и публикация приложения ASP.NET Core¶
Дата создания : 14 октября 2022 г.