9

在 Linux 上安装 ASP.NET 5 时,我试图了解整个 Web/框架/应用程序堆栈。

我读过的所有说明,包括这个并没有真正回答我的问题:

为什么没有Kestrel 的 Nginx 服务器不能像这里一样工作:http ://www.mono-project.com/docs/web/fastcgi/nginx/ ?

还是我走远了。我试图了解这种结构的原因是什么:

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

Kestrel 不是像 Nginx 一样只是另一个 Web 服务器,但功能少得多吗?

4

2 回答 2

8

ASP.NET Core (ASP.Net 5) 不需要Kestrel

你是对的,Kestrel只是一个简单的 HTTP 服务器,具有一小部分功能。您可以在LinuxMac上不使用Kestrel运行ASP.NET Core,但您必须拥有 HTTP 服务器或 fastCGI 服务器。

Nginx通常用作静态内容的反向代理,您还可以对动态内容启用 gzip 压缩。Kestrel没有这个功能。

您还可以使用您需要的特定 HTTP 功能(例如 HTTP2)编写自己的 HTTP 服务器。

于 2015-09-03T07:15:22.653 回答
5

死灵术。

是的,它确实需要 Kestrell。
正如 Agua 所说,理论上,它也可以在 Kestrell 以外的其他 http 服务器上运行,可以运行 .NET Core 或通过 FastCGI。

然而,AFAIK,Kestrell 是目前唯一可以真正做到这一点的 http-server。而且因为 AFAIK,用.NET Core
编写的 FastCGI 服务器/库(尚不存在)。

现在,如果您想将 .NET Core 与 nginx 或 Apache 一起使用,您所能做的就是将请求反向代理到 kestrell。

于 2016-10-03T00:02:46.283 回答