Apache、Nginx对比
Apache Nginx优缺点
apache相对于nginx的优点:
- rewrite ,比nginx 的rewrite 强大
- 动态页面,nginx处理动态请求很弱,apache可以通过加载模块来支持动态页面处理,但是像JSP这种最好还是放到更强大的tomcat中进行动态页面处理
- 模块超多,基本想到的都可以找到
- 少bug ,nginx 的bug相对较多
nginx相对于apache的优点:
- 轻量级,同样起web服务,比apache占用更少的内存及资源 ,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50000 个并发连接数的响应,这归功于Nginx为我们选择了 epoll and kqueue 作为开发模型
- 抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 社区活跃,各种高性能模块出品迅速
- Nginx本身就是一个反向代理服务器。负载均衡能力突出,Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
比较
- nginx 配置简洁, apache 复杂
- nginx 静态处理性能比 apache 高 3倍以上
- apache 对PHP支持比较简单,nginx 需要配合其他后端用
- apache 的组件比 nginx 多
- apache是同步多进程模型,一个连接对应一个进程
- nginx是异步的,多个连接(万级别)可以对应一个进程
- nginx处理静态文件好,耗费内存少
- 动态请求由apache去做,nginx只适合静态和反向
- nginx适合做前端服务器,负载性能很好
- nginx本身就是一个反向代理服务器 ,且支持负载均衡
核心区别
apache是同步的多进程模型,一个连接对应一个进程
nginx是异步的单进程模型,多个连接(万级别)可以对应一个进程
总结
- nginx的优点是,负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache
- apache的优点是,rewrite强大,请求路由转发功能强大
- 大部分场景下已经看不到apache的出场了,基本都使用nginx + tomcat的方式做Web服务器部署
参考
Apache Nginx优缺点
详谈Apache、Nginx和tomcat的区别以及处理静态页面和动态页面的方式
Apache Rewrite规则详解