web服务器的概念与基本原理 web服务器是什么( 三 )


1.4. 反向代理概念与基本原理1.4.1. 反向代理基本概念反向代理是代理服务器的一种 。它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端 。与前向代理不同,前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端(如Web服务器)作为代理使用,而不是客户端 。客户端通过前向代理可以访问很多不同的资源,而反向代理是很多客户端都通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器 。
互联网中的请求发送给反向代理,反向代理把请求转发到内网中的服务器 。
反向代理的主要作用为:

  • 加密和SSL加速
  • 负载均衡
  • 缓存静态内容
  • 压缩
  • 减速上传
  • 安全防火墙
  • 外网发布
  • 突破互联网封锁
  • 解决跨域问题
1.4.2. 反向代理基本工作原理
  • TCP监听模块 监听TCP请求,这里的请求是指报文内容是某应用层协议(比如HTTP,FTP,EMAIL等应用层协议)的请求 。至于这里是否会单独产生一个线程来开始处理,这个由服务器自己决定,目前最流行的是先入消息队列然后异步处理,这样能极大提高代理的吞吐量和稳定性 。
  • 匹配被代理服务器 代理服务器根据一个表(存放外网url和内网服务器的对应关系,通常需人工进行设置),如果匹配到则继续处理,否则依据外网协议返回错误信息,比如HTTP协议这返回404 。
  • 应用负载均衡策略 如果比较大型的互联网应用,为了整体系统稳定性,解决单点问题,需要根据自定义策略合理的转发报文给被代理服务器 。简单的策略是哈希分发或者随机分发,一般可以由用户进行配置和选择 。
  • 预处理 这里依据协商好的外网应用协议进行解密,安全,会话,解压等处理 。
  • 新生成网络报文 这里依据协商好的内网应用协议生成网络报文,这里可能会进行加密,安全,会话,压缩等处理 。
  • 转发给被代理服务器 把新生成的网络报文发送给内网服务器(可能是否Web服务器,Ftp服务器,邮件服务器) 。
  • 接受网络报文 接受内网服务器反馈的网络报文 。
  • 预处理 这里依据协商好的外网应用协议进行加密,安全,会话,压缩等处理 。
  • 资源输出模块 这时生成满足外网应用协议要求的报文,并发送到外网连接的另一端(用户代理) 。
常用的反向代理服务器
它们的名字您一定记得:Ngnix,IIS,Apache 。1.5. 总结从概念上讲:Web服务器是提供WWW服务的程序;Web容器是提供给开发者的框架;Web应用程序服务器内容丰富得多,既可用各厂商通常遵循一定的工业标准并自定义扩展功能而成,也可以利用开源组件轻量级拼装打造;反向代理服务器在企业级应用中表现突出,具有解决集中式安全,负载均衡等等优点 。如今这四个概念的边界越来模糊,看看这个表就知道了:
软件名词
是否Web服务器
是否Web容器
是否Web应用服务器
是否能反向代理
IIS



Nginx


Apache


Tomcat


Jetty


WebSphere



WebLogic



Kerstrel

是?
Http.sys


关于Kerstrel是否web容器,有两种观点:
1. 由于Kerstrel不提供编写应用的框架,所以它不是容器;asp.net core才是容器,因为它提供了开发应用的框架并提供web应用(MVC,Web API)运行环境 。
【web服务器的概念与基本原理 web服务器是什么】2. Kerstrel提供了运行环境 。

推荐阅读