01、.NetCore2.0--WEB服务器--ASP.Net Core 和 IIS解耦
一、历史问题
ASP.NET Core出现之前,ASP.NET应用的Web服务器都是IIS。它强依赖于IIS,不具有
扩展性;又因为IIS只有Windows
版本,没有如Linux等版本,造成了ASP.NET Web应用只能运行在Windows操作系统上。
二、OWIN规范的出现
OWIN(Open Web Interface fro .NET),这个规范定义了一组
接口,用来解耦Web服务器和Web应用程序。它规范和定义了Web服务器和Web应用程序之间的相互调用关系。也就是说,只要实现了OWIN接口的Web服务器都可以支持ASP.NET Web应用程序的运行了。
OWIN规范的详细情况可访问:
http://owin.org/
三、ASP.NET Core默认提供的WEB服务器
目前实现了OWIN接口的WEB服务器有很多,比如Katana、Kestrel等。ASP.NET Core默认提供的WEB服务器是Kestrel,它是
跨平台的,可以运行在Linux或者Windows操作系统上。
四、ASP.NET Core 2.0下的Web服务器使用姿势
使用Kestrel做SelfHost(自宿主)模式:Kestrel 没有安全、缓存等功能,因此不应该把 Kestrel 暴露到公网。
也可以使用 IIS、
Nginx 做反向代理服务器:反向代理收到Http Request后,经过预处理后,再转发给 Kestrel,由反向代理服务器进行缓存、安全等处理。
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?tabs=aspnetcore2x