Наружу его пускать нельзя, должен быть nginx
Вообще-то можно.
Просто могут возникнуть сложности с балансировкой нагрузки и кэшированием.
И nginx и Kestrel - веб серверы. Их даже иногда сравнивают.
Да, только kestrel - это встраиваемый веб-сервер. Наподобие netty и jetty с жавы, или http стека с nodejs и go.
Но nginx это на порядки более надежный и проверенный сервер, с кучей плагинов и настроек.
Интересно, как вы так посчитали на порядки более высокую надёжность?)
Плагинов и настроек в kestrel тоже навалом, только там вся настройка происходит кодом.
Какую роль он играет и почему без него нельзя обойтись?
Если опустить вариант с IIS, то kestrel в принципе единственный доступный вариант, тк nginx просто не умеет напрямую с aspnet общаться.
CGI в дотнете нет, и слава богу
Если без kestrel, то есть ещё вариант с http.sys на винде
PS: страница из документации про то, когда стоит использовать kestrel с nginx, а когда можно обойтись одним кестрелом:
https://docs.microsoft.com/en-us/aspnet/core/funda...
Кратко: можно не брать обратный прокси, но тогда потеряешь немного в гибкости, например нельзя будет несколько сайтов на одном порту держать.