Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll(linux2.6内核)、kqueue(freebsd)、eventport(solaris10)作为网络I/O模型,能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗却非常低、运行非常稳定。
2008年12月:Nginx市场占有量为3354329、占有率为1.80%
1、选择Nginx的理由
1.1 支持高并发连接
通过top命令可以查看系统负载和CPU使用率
由于apache采用的是select网络I/O模型,处理大量连续的读写很低效
1.2 内存消耗少
在服务器3W并发连接下,开启10个Nginx进程消耗150MB内存(15MB*10),开启64个php-cgi进程消耗128MB内存(20MB*64),共消耗不到2GB内存,可以使用webbench做压力测试,运行依旧很快。
1.3 成本低廉
购买F5 BIG-IP、NetScaler等负载均衡交换机需要几十万RMB,而开源Nginx替代这些商业设备。
1.4 其他理由
网络配置简单,对比apache就知道了
支持rewrite重写规则,能够根据域名、URL的不同、将HTTP请求分到不同的后端服务器群组
内置的健康检查功能
节省带宽,支持GZIP压缩,可以添加浏览器本地缓存的Header头
支持热部署,能够在不间断服务的情况下、对软件版本进行升级
结论:Nginx在反向代理、rewrite规则、稳定性、静态文件处理、内存消耗等方面都表现出很强的优势。