0


常见的Web应用中间件(基于Linux)

  1. 在整理常用的Web中间件时,我发现自己对于Web服务器、Web中间件和Web容器的概念容易混淆,所以在整理常见的Web应用中间件时,我想先区别一下Web服务器、Web中间件和Web容器。

Web服务器

  1. **Web服务器**也可以称为网站服务器,时提供Web服务的软件或主机,Web服务器可以处理HTTP协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托给其他程序。Web服务器可以向Web浏览器等客户端提供文档,也可以放置网站文件,让全世界浏览,更可以放置数据文件,让全世界下载。常见的Web服务器有IISApachenginxTomcat等。

Web中间件

  1. **中间件**(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力
  2. 也就是说,关于中间件,我们可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。(注意:中间件是一类软件的总称,不是单独的一个软件)。

Web容器

  1. ** **为了与页面产生交互操作,来获取动态结果,需要一些扩展机制能够让HTTP服务器调用服务端程序,Servlet技术产生了,可以把Servlet简单理解为运行在服务端的Java小程序,但是Servlet没有main方法,不能独立运行,因此必须把它部署到Servlet容器中,由容器来实例化并调用Servlet。而TomcatJetty就是一个Servlet容器。为了方便使用,它们也具有HTTP服务器的功能,因此Tomcat或者Jetty就是一个“**HTTP服务器 + Servlet容器**”,我们也叫它们**Web容器**。

总结

  1. 通过以上的概念理解,这三者其实是有包含关系的。

Web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等

Web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等

Web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

  1. 所以应该是 Web服务器>Web中间件>Web容器。

  1. 接下来整理基于Linux系统下的常见的Web中间件。

一、Apache(httpd)

  1. Apache HTTPD又可以简称为httpd或者Apache,它是Internet使用最广泛的web服务器之一,使用Apache提供的web服务器是由守护进程httpd,通过http协议进行文本传输,默认使用80端口的明文传输方式,当然,后来,为了保证数据的安全和可靠性,又添加了443的加密传输的方式,Apache提供的服务器又被称为:补丁服务器,原因很简单,它是一款高度模块化的软件,想要给它添加相应的功能只需添加相应的模块,让其Apache主程序加载相应的模块,不需要的模块也可以不用加载,保证了Apache的简洁,轻便,高效性,当出现大量访问一个服务器是可以使用多种复用模式,保证了服务器能快速回应客户端的请求,如MPM,端口复用技术。
  • 特点
  1. 开放源代码
  2. 跨平台使用,支持绝大多数硬件平台,支持所有的unix系统和linux系统,支持大多数windows平台
  3. 支持多种web编程语言,perl,php,python,java等
  4. 模块化设计,根据所需功能去安装不同的模块
  5. 运行非常稳定,支持大负载访问的web站点
  6. 安全性高,及时修复已发现的漏洞

二、Tomcat

  1. 适用于本地开发,小项目,或者是个人开发(免费的开放源代码的Web 应用服务器),Apache HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet,但是Tomcat处理静态[HTML]的能力不如Apache服务器。
  • 特点:
  1. 支持最新标准(SUN的专家经常和TOMCAT的开发人员在一起混)
  2. 更新快
  3. 跨平台
  4. 体积小,安装和部署都方便

三、weblogic

** **大项目或者商业项目,Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是美国bea公司出品的一个基于j2ee架构的中间件。

  • 特点
  1. 简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性
  2. 商业软件,功能齐全强大,主要应用于大型企业的大型项目
  3. 是高扩展的架构体系

四、jetty

** **一些示例项目或者小项目常(开源的servlet容器),是使用Java语言编写的,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使[自动化测试]不再依赖外部环境,顺利实现自动化测试。

  • 特点
  1. 具有易用性、可扩展性、易嵌入性
  2. 快速高效

五、JBoss

** **管理EJB的容器和服务器(开放源代码的项目),JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发。

  • 特点
  1. 应用服务器还具有许多优秀的特质。
  2. 需要的内存和硬盘空间比较小。
  3. 安装便捷:解压后,只需配置一些环境变量即可。
  4. 支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载;如果有改动,也会自动更新。Boss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
  5. 用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
  6. Jboss支持[集群]。

六、WebSphere

** **IBM 的软件平台,它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平台上运行,包括 Intel、Linux 和 z/OS。

  • 特点
  1. 满足大量应用的需要
  2. 运行于多种硬件和OS平台
  3. 支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
  4. 支持标准的协议
  5. 支持标准的接口

七、nginx

  1. Nginx 是高性能的 HTTP 和反向代理的web服务器,Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perlphp 等。但是不支持 javaJava 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 50,000 个并发连接数。
  • 特点:
  1. 跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows的移植版本。
  2. 配置异常简单:非常容易上手。配置风格跟程序开发一样,神一般的配置。
  3. 非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数.(这得益于Nginx使用了最新的epoll模型)。
  4. 内存消耗小
  5. 稳定性高:用于反向代理,宕机的概率微乎其微。nginx代理和后端web服务器间无需长连接。
标签: 前端 中间件

本文转载自: https://blog.csdn.net/weixin_62870442/article/details/127291401
版权归原作者 auv310 所有, 如有侵权,请联系我们删除。

“常见的Web应用中间件(基于Linux)”的评论:

还没有评论