Why does ASP.NET 5 on Linux require kestrel?

牧云@^-^@ 提交于 2019-12-05 18:55:59

问题


I am trying to understand the entire web/framework/application stack when installing ASP.NET 5 on Linux.

All the instructions I have read, including this one haven't really answered my question:

Why can't Nginx server work without Kestrel like here: http://www.mono-project.com/docs/web/fastcgi/nginx/ ?

Or am I way off. I'm trying to understand what the reason is for this structure:

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

Isn't Kestrel just another web server like Nginx but with a lot less features?


回答1:


ASP.NET Core (ASP.Net 5) doesn't require Kestrel!

You're right, Kestrel is just a simple HTTP server with a small set of features. You can run ASP.NET Core without Kestrel on Linux or Mac, but you must either have an HTTP server or a fastCGI server.

Nginx is used as a reverse proxy for static contents in general and you can also enable gzip compression on your dynamic content. Kestrel doesn't have this feature.

You can also write your own HTTP server with the specific HTTP features you need (HTTP2 for example).




回答2:


Necromancing.

Yes, it does in fact require Kestrell.
As Agua says, theoretically, it could also be run on some other http-server than Kestrell, one that can run .NET Core, or via FastCGI.

However, AFAIK, Kestrell is the only http-server currently in existance that can actually do that.
And because AFAIK, a FastCGI-server/library written in .NET Core doesn't (yet) exist.

Right now, if you want to use .NET Core with nginx or Apache, all you can do is to reverse-proxy requests to kestrell.



来源:https://stackoverflow.com/questions/32367302/why-does-asp-net-5-on-linux-require-kestrel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!