我试图在Linux上安装ASP.NET 5时理解整个Web /框架/应用程序堆栈。
我读过的所有说明,包括this one都没有回答我的问题:
为什么Nginx服务器没有 Kestrel可以在这里工作<{3}}?
或者我离开了。我试图了解这种结构的原因是什么:
.NET Core(or mono) --> Kestrel --> Nginx
不是Kestrel只是另一个像Nginx这样的网络服务器,但功能却少得多吗?
答案 0 :(得分:8)
ASP.NET核心(ASP.Net 5)并不需要 Kestrel !
你是对的, Kestrel 只是一个简单的HTTP服务器,只有一小部分功能。您可以在 Linux 或 Mac 上运行 ASP.NET Core 而不使用 Kestrel ,但您必须拥有HTTP服务器或者是fastCGI服务器。
Nginx 通常用作静态内容的反向代理,您还可以对动态内容启用gzip压缩。 红隼没有此功能。
您还可以使用所需的特定HTTP功能编写自己的HTTP服务器(例如HTTP2)。
答案 1 :(得分:4)
Necromancing。
是的,确实需要Kestrell。
正如Agua所说,从理论上讲,它也可以运行在除Kestrell之外的其他一些http服务器上,可以运行.NET Core,也可以通过FastCGI运行。
然而,AFAIK,Kestrell是目前唯一可以实现这一目标的http服务器。
而且因为AFAIK,一个用 .NET Core 编写的FastCGI服务器/库(尚未)存在。
目前,如果您想将.NET Core与nginx或Apache一起使用,您所能做的就是将请求反向代理到kestrell。