Apache,Tomcat,Jboss,jetty

摘要:摘要: Apache,Tomcat,Jboss,jetty

some content comes from:http://blog.csdn.net/allenlinrui/article/details/6675998

Apache

是世界使用排名第一的Web服务器软件,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行

1 (56).jpg

1) 几乎可以运行在所有的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单而且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具有用户会话过程的跟踪能力.

13) 支持fastcgi

14) 支持java servlets

tips:什么是CGI

CGI (Common Gateway Interface), 所谓的 Interface 就是界面, 这界面站立於 浏览器与服务器之间. 共同的地方在於,不论你在客户端用的是那一种浏览器 Chrome, Firefox, Internet Explorer, Safari... 又或者服务端用的是甚麼服务器, Apache, Ngnix, Websphere... 在 CGI协议中, 大家都用同一套规范来进行沟通, 例如 Request Method 中有 GET POST HEAD PUT 等等.. 大家都能读得懂, 而同样, 输出也有一系列的规范, 如 MIME, Multipart, 或一系列的 Header ( 如: image/jpeg ) 等. 最後有一点值得留意的是, CGI 本身不是程序, 只是一套协议

Apache与tomcat

如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。

如果客户端请求的是静态页面,则只需要Apache服务器响应请求。如果客户端请求动态页面,则是Tomcat服务器响应请求。

一般使用Apache+Tomcat的话,Apache只是作为一个转发,对JSP的处理是由Tomcat来处理的。

Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。

Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

Tomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想,性能较差;

jetty

将Tomcat内核作为其Servlet容器引擎,并加以审核和调优.Jetty通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足(如活动连接支持、静态内容、大文件和HTTPS,受限的集成平台仅能运行Java应用程序),可扩展,提供数据库连接池服务,不仅支持java等jsp,同时还支持其他web技术的集成如php与net,率先支持j2EE标准

jboss

JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。JBoss核心服务仅是提供EJB服务器。JBoss不包括serverlers/JSP page 的WEB容器,当然可以和Tomcat或Jetty绑定使用。 安装非常简单,能够"热部署",署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没有加载就加载它;如果已经加载了就卸载掉,然后LOAD这个新的。

Lighttpd

Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。

Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。

Fastcgi的优点在于:

· 从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑.

· 从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮,

· 从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1)

· 从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...)

nginx

轻量级,同样起web 服务,比apache占用更少的内存及资源

抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 ,nginx的负载能力比apache高很多

Nginx 静态处理性能比 Apache 高 3倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用

建议方案

Apache 后台服务器(主要处理php及一些功能请求如:中文url)

Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)

Lighttpd 图片服务器

Apache / Nginx/ lighttpd 是一类,都是专用的WEB服务器,Tomcat / Jetty 是一类,是servlet/jsp应用服务器+WEB服务器,Jboss则是一个大框架,也是应用服务器 + WEB服务器,但是Tomcat 或则Jetty 都是它的一部分