中年一文看懂web服务器、应用服务器、反向代理服务器区别与联系( 三 )

  • 动态资源处理模块通常在这里具体的容器和开发语言都有自己的高效开发模型 , 比如 Java 的 Servlet , ASP.NET 的 Web Form , MVC 。
  • 回收资源这里会回收刚才的线程资源 , 为了线程复用 , 除非服务器空闲一般会将线程返回线程池 。 可以看出 , Web 容器本身具备了做为一个 Web 服务器的功能 , 事实上通常实现 Web 容器功能的服务器就是一个 Web 服务器 。 比如 Tomcat , IIS , Jetty 。
  • 主流 Web 容器
    包括 Tomcat , IIS , Jetty。 还有比较多使用 WebSphere , WebLogic 等等 。
    Web 应用程序服务器概念及基本原理
    在 Web 服务器发展的同一个时期 , 应用服务器已经存在并发展很长一段时间了 。
    一些公司为 Unix 开发了 Tuxedo(面向事务的中间件)、TopEnd、Encina 等产品 , 这些产品都是从类似 IMS 和 CICS 的主机应用管理和监控环境衍生而来的 。
    大部分的这些产品都指定了“封闭的”产品专用通信协议来互连胖客户机(“fat” client)和服务器 。
    在 90 年代 , 这些传统的应用服务器产品开始嵌入 HTTP 通信功能 , 刚开始要利用网关来实现 。 不久后它们之间的界线开始变得模糊了 。
    同时 , Web 服务器越来越成熟 , 可以处理更高的负载、更多的并发和拥有更好的特性;应用服务器开始添加越来越多的基于 HTTP 的通信功能 。 所有的这些导致了 Web 服务器与应用服务器的界限变得更窄了 。
    目前 , “应用服务器”和“Web 服务器”之间的界限已经变得模糊不清了 。 但是人们还把这两个术语区分开来 , 作为强调使用 。
    当有人说到“Web 服务器”时 , 你通常要把它认为是以 HTTP 为核心、Web UI 为向导的应用 。
    当有人说到“应用服务器”时 , 你可能想到“高负载、企业级特性、事务和队列、多通道通信(HTTP 和更多的协议)” 。 但现在提供这些需求的基本上都是同一个产品 。
    下图描述一个典型的 Web 应用服务器的结构图:
    中年一文看懂web服务器、应用服务器、反向代理服务器区别与联系
    本文插图
    从上图中可以看到 Web 应用服务器包括了 Web 容器 , 同时内置了支撑企业应用的事务 , 安全 , 集成 , 通信 , 高可用等等功能 。
    极大地减少了重复开发量 , 保障了业务系统快速开发和部署 , 而它本身也是一个 Web 服务器 。
    Web 应用服务器可以选择使用大厂的 WebLogic 和 WebSphere 这种重量级产品外 。
    也可以使用类似与 Tomcat、Jetty 这样的 Web Containner 再加上第三方的框架(Spring , Hibernate等)来构建自己的 Application Server;.NET Core 平台下可以选择 IIS , Apache , Nginx 与 ASP.NET Core 构建 。
    反向代理概念与基本原理
    反向代理基本概念
    反向代理是代理服务器的一种 。 它根据客户端的请求 , 从后端的服务器(如Web 服务器)上获取资源 , 然后再将这些资源返回给客户端 。
    与前向代理不同 , 前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端 , 而反向代理是在服务器端(如 Web 服务器)作为代理使用 , 而不是客户端 。
    客户端通过前向代理可以访问很多不同的资源 , 反向代理是很多客户端都通过它访问不同后端服务器上的资源 , 而不需要知道这些后端服务器的存在 , 以为所有资源都来自于这个反向代理服务器 。
    中年一文看懂web服务器、应用服务器、反向代理服务器区别与联系
    本文插图
    互联网中的请求发送给反向代理 , 反向代理把请求转发到内网中的服务器 。
    反向代理的主要作用为: