Почему ASP.NET 5 в Linux требует kestrel?

Я пытаюсь понять весь стек Web/ Framework / приложения при установке ASP.NET 5 на Linux.

Все инструкции, которые я прочитал, включая эту, на самом деле не ответили на мой вопрос:

Почему сервер Nginx не может работать без Kestrel, как здесь: http://www.mono-project.com/docs/web/fastcgi/nginx/?

Или я далеко. Я пытаюсь понять, в чем причина этой структуры:

.NET Core(or mono) --> Kestrel --> Nginx

Разве Kestrel не просто еще один веб-сервер, такой как Nginx, но с гораздо меньшими возможностями?

2 ответа

Решение

Ядро ASP.NET (ASP.Net 5) не требует Kestrel!

Вы правы, Kestrel - это простой HTTP-сервер с небольшим набором функций. Вы можете запустить ASP.NET Core без Kestrel в Linux или Mac, но у вас должен быть HTTP-сервер или сервер fastCGI.

Nginx используется как обратный прокси-сервер для статического содержимого в целом, и вы также можете включить сжатие gzip для вашего динамического содержимого. Кестрел не имеет этой функции.

Вы также можете написать свой собственный HTTP-сервер с конкретными функциями HTTP, которые вам нужны (например, HTTP2).

Necromancing.

Да, это действительно требует Кестрелла.
Как говорит Агуа, теоретически он также может быть запущен на каком-то другом http-сервере, кроме Kestrell, который может работать на.NET Core или через FastCGI.

Однако, AFAIK, Kestrell - единственный http-сервер в настоящее время, который действительно может это сделать.
А поскольку AFAIK, FastCGI-сервер / библиотека, написанная на .NET Core, (пока) не существует.

Прямо сейчас, если вы хотите использовать.NET Core с nginx или Apache, все, что вы можете сделать, - это обратный прокси-запрос к kestrell.

Другие вопросы по тегам