Linux常见Web中间件
Posted 云计算就该这么学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常见Web中间件相关的知识,希望对你有一定的参考价值。
Web中间件
一、web 中间件简介
中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之 间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境 与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解 决问题上的能力 。容器就是中间件的一种。
中间件是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关 的服务的软件。(注意:中间件是一类软件的总称,不是单独的一个软件)
web中间件也叫做web服务器或者web容器
正常情况下一次web的访问顺序是:web浏览器—服务器(硬件)—web容器—web应用服务器—数 据库服务器。
二、常见的 web 中间件
1、JAVA 中间件
1)Tomcat
Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因 而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Java Web 应用服务器 (Servlet 容器)。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat 服务器是一个免费的开放源 代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被 普遍使用,是开发和调试JSP 程序的首选。Tomcat默认使用 8080 号端口
2)Weblogic
WebLogic 是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间 件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应 用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和 管理之中。Weblogic默认端口是 7001。
3)Jboss
Jboss 是一个基于Java EE的开放源代码的应用服务器。它不但是Servlet容器,而且也是EJB容器,从而 受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。JBoss是一个管理EJB的 容器和服务器。但JBoss核心服务不包括支持 servlet/JSP 的WEB容器,一般与 Tomcat 或 Jetty 绑定使 用。Jboss默认端口号是8080。
4)Webshere
WebShere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程 序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提 供了可靠、灵活和健壮的软件。WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通 过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平 台上运行,包括 Intel、Linux 和 z/OS。Webshere默认端口号是 9080。
2、Python 中间件
1)wsgi
一种实现python解析的通用接口标准/协议,跟 wsgi一样概念的有Ruby语言的Rack,可以认为wsgi是 一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。有了这个东 西,web.py 或者bottle或者django等等的python web开发框架,就可以轻松地部署在不同的web server上了,不需要做任何特殊配置(也需要一些小小的配置调整)
2)uwsgi
uwsgi 同WSGI一样是一种通信协议,是一个 uWSGI 服务器自有的协议,它用于定义传输信息的类型 (type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东 西。
3)uWSGI
一种python web server或称为Server/Gateway,uwsgi类似tornadoweb或者flup,是一种python web server,uWSGI是实现了uwsgi和WSGI两种协议的Web服务器,负责响应python 的web请求。因 为apache也好,nginx也罢,它们自己都没有解析动态语言如php的功能,而是分派给其他模块来做, 比如apache就可以说内置了php模块,支持的非常爽,让人感觉好像apache就支持php一样。uwsgi实 现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交 换。类似的有:flup
3、Php 中间件
1)php-fpm
Php-fpm全称是php fastcgi process manager即php fastcgi进程管理器,相比fastcgi静态的唤起cgi, fpm能根据访问的压力动态的唤起cgi进程和销毁以到达动态的调整cgi数量,这样可以有效的使用内 存。除此之外还有其它的一些优点,比如,fpm还可以平滑的重载php配置;由于fpm是使用UnixSocket来和服务器通讯,所以也不用再配置cgi端口;fpm有更好的状态输出和slowlog日志,502的时 候能给出更多的错误细节。
2)CGI
CGI是一个通用的web标准,可以粗陋的认为CGI就是一种用任意语言写Web程序的标准。
3)FastCGI
FASTCGI是Web服务器(ex:nginx)和语言解释器(ex:uWsgi)两者底层的通信协议的规范,是对CGI的开 放的扩展。
4)Php-FastCGI
Web Server 启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module);
FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe) 并等待来自Web Server的连接。
当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server 将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程 关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行 在 WebServer中)的下一个连接。在正常的CGI模式中,php-cgi.exe在此便退出了。
本文作者
推荐阅读
以上是关于Linux常见Web中间件的主要内容,如果未能解决你的问题,请参考以下文章