Apache有很多优点,如稳定开源,跨平台等,但是不支持高并发,如果有数以万计的并发http请求同时访问,就会导致服务器上消耗大量内存,操作系统内核对成百上千的Apache进程做进程间切换也会消耗大量CPU资源,并导致http请求的平均响应速度降低,这些都决定了Apache不可能成为高性能web服务器。
Nginx是轻量级、高性能的Web服务器。(国外更多用Lighttpd,国内更多用Nginx)
Nginx的优点:
1、更快:单次请求会得到更快的响应;并发请求也会更快地响应请求。
2、高扩展性:完全由多个不同功能、不同层次、不同类型且耦合度极低的模块组成,当对某一模块修复bug或者升级时,可以专注于模块自身。Nginx的模块都是嵌入到二级制文件中执行的,这使得第三方模块一样具备极其优秀的性能。
3、高可靠性:核心框架代码的优秀设计、模块设计的简单性,官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。
4、低内存消耗:一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。
5、单机支持10万以上的并发连接。
6、热部署:master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,可以在7*24小时不间断服务的前提下,升级Nginx的可执行文件,也支持不停止服务就更新配置项、更换日志文件等功能。
7、最自由的BSD许可协议:BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布。
最核心的优点:能在支持高并发请求的同时保持高效的服务。