Nginx的优点
1、可以高并发连接
官方测试nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。
原因,主要是nginx使用了最新的epoll(linux2.6内核)和kqueue(freebsd)网路i/o模型,而apache使用的是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所以消耗的cpu等服务器资源,要比nginx高很多。
2、内存消耗少
nginx+php(fastcgi)服务器,在3万并发连接下,开启10个nginx进程消耗150mb内存,15mb*10=150mb,开启的64个php-cgi进程消耗1280内存,20mb*64=1280mb,加上系统自身消耗的内存,总共消耗不到2gb的内存。
如果服务器的内存比较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500mb。
3、成本低廉
购买f5big-ip、netscaler等硬件负载均衡交换机,需要十多万到几十万人民币,而nginx为开源软件,采用的是2-clause bsd-like协议,可以免费试用,并且可用于商业用途。
bsd开源协议是一个给使用者很大*的协议,协议指出可以*使用、修改源代码、也可以将修改后的代码作为开源或专用软件再发布。
4、配置文件非常简单
网络和程序一样通俗易懂,即使,非专用系统管理员也能看懂。
5、支持rewrite重写
能够根据域名、url的不同,将http请求分到不同的后端服务器群组。
6、内置的健康检查功能
如果nginxproxy后端的某台web服务器宕机了,不会影响前端的访问。
7、节省带宽
支持gzip压缩,可以添加浏览器本地缓存的header头。
8、稳定性高
用于反向代理,宕机的概率微乎其微。
9、支持热部署
nginx支持热部署,它的自动特别容易,并且,几乎可以7天*24小时不间断的运行,即使,运行数个月也不需要重新启动,还能够在不间断服务的情况下,对软件版本进行升级。
nginx、apache、lighttpd对比
可以看出,nginx在反向代理、rewrite规则、稳定性、静态文件处理,内存消耗等方面,有很强的优势,使用nginx取代传统的apache服务器,会得到多方面的性能提升。