.NET Core中的使用Kestrel服务器理解

  • Post author:
  • Post category:其他


Kestrel是一个基于libuv的跨平台.

NET Core web服务器



libuv

是一个跨平台的异步I/O库。ASP.NET Core模板项目使用Kestrel作为默认的web服务器。

Kestrel支持以下功能:

  • HTTPS
  • 用于启用不透明升级的

    WebSockets
  • 位于Nginx之后的高性能Unix sockets

Kestrel 被.NET Core支持的所有平台和版本所支持

何时使用Kestrel和反向代理服务器

如果你的应用只接收来自内部网络的请求,你可以只使用Kestrel本身

如果你将你的应用部署在公共网络上,我们建议你使用IIS,Nginx或者Apache作为反向代理服务器。一个反向代理服务器接收来自网络的HTTP请求并且在经过一些初步处理后将请求传递到Kestrel服务器。

出于安全性的理由,反向代理常常被edge deployments所采用。因为Kestrel相对较新,对抵御安全攻击至今还没有一个完整的功能补充。安全性处理包括但不限于适当的超时,大小的限制,以及并发连接限制等问题。

另一个需要反向代理的场景是,你有多个需要在单独的服务器上运行并分享同一端口的应用。因为Kestrel不支持在多进程间分享同一端口,所以应用并不能直接和Kestrel合作。当你在某个端口上配置Kestrel运行侦听时,不算主机头如何标识,Kestrel会为该端口处理所有的流量。反向代理可以为多个应用共享唯一端口并将流量发送给Kestrel。

即使不需要反向代理服务器,使用它也可以简化负载均衡和SSL设置 — 只要你的反向代理服务器需要SSL证书,并且该服务器可以和你的应用在内部网中通过普通HTTP进行通信。

由于今天时间有限,我先简单的说明介绍说明一下Kestrel服务器基本作用,下篇文章详细介绍.



版权声明:本文为yanghaolong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。