Web服务器及Web应用服务器
1. 如果仅需要展示html页面,而不要其他功能,apache;(nginx也是类似功能;它本身仅提供html静态页面的功能,不能支持jsp、java servlet、asp等功能,但通过同其他应用服务器一起工作或添加插件来支持)
2. 如果是在开发时使用或者是一般小型应用,需要支持jsp/servlet,而又不需要EJB的,tomcat;
3. 需要支持jsp/servlet,不需要EJB,有希望提高服务器的效率和稳定性的,apache+tomcat;
4. 需要支持jsp/servlet/EJB,而又想免费的,apache+jboss(包含tomcat的版本);
基本的HTTP服务器特性
- 处理静态文件,索引文件以及自动索引;打开文件描述符缓存;
- 使用缓存加速反向代理;简单负载均衡以及容错;
- 远程FastCGI,uwsgi,SCGI,和memcached服务的缓存加速支持;简单的负载均衡以及容错;
- 模块化的架构。过滤器包括gzip压缩、ranges支持、chunked响应、XSLT,SSI以及图像缩放。在SSI 过滤器中,一个包含多个SSI的页面,如果经由FastCGI或反向代理处理,可被并行处理;
- 支持SSL,TLS SNI。
nginx 相对 apache 的优点:
- 轻量级,同样起web 服务,比apache 占用更少的内存及资源
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 社区活跃,各种高性能模块出品迅速啊
- rewrite ,比nginx 的rewrite 强大
- 模块超多,基本想到的都可以找到
- 少bug ,nginx 的bug 相对较多
- 超稳定
参考文献:
http://wurongzong.blog.51cto.com/3048469/579233
http://tengine.taobao.org/nginx_docs/cn/
https://www.zhihu.com/question/19571087