首先我们来谈谈老朋友Apache,Apache HTTP Server(简称Apache)是世界使用排名第一的Web服务器软件,音译为阿帕奇,是Apache软件基金会的一个开放源码Web服务器,可以运行几乎所有的计算机平台,其次开放的API接口,任何组织和个人都可以在它上面扩展和增加各种需要功能,达到为自己量身定制的功能。再次是因为老,所有相关文档很齐全,甚至在windows平台很多爱好者都为它开发了各种图形界面,连菜鸟也能入手Apache。因为如此它迅速占领了70%的web服务器市场。
现在咱们说说Nginx,Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的。其次它和Apache一样是开源的,BSD-like 协议下发行。它最强劲也最具有竞争性为其高性能和反向代理,这两项在该领域独领风骚。
在互联网初期,网站大小不是很大,访问量都很轻量,一个网站的访问量一天最多就几万IP,这个时候Apache完全可以满足需要,人们更多的是为它开发各种模块,像重写模块,访问控制列表,缓存模块等等。但是随着互联网的飞速发展,网站我访问量以指数增长,大型网站的除了加大硬件投入外,典型的Web服务器Apache这时候也力不从心了,于是Nginx开始崛起,最初的设计是俄罗斯工程师为大型网站解决高并发设计的。所以注定了高并发是它永恒的优点。再次就是反向代理,现在大型网站分工详细,哪些服务器处理数据流,哪些处理静态文件,这些谁指挥,一般都是用nginx反向代理到内网服务器,这样就起到了负载均衡分流的作用。再次nginx高度模块化的设计,编写模块相对简单。
而我们的老朋友Apache比nginx又有什么优势呢,很多中小型网站都在用Apache,非常重要的原因是他出现时间较长,稳定,文档丰富,再次在重写方面相对nginx更强大,模块超多,基本只要你能想到的,就有人开发过。
面对这些优缺点,作为客户的我们该如何取舍呢?尽管nginx正在一步步取代Apache,市场份额也在不断增加,但是做为一个网站管理员,还是需要从如下几个方面作为出发点来选择适合自身的web服务器。
第一、网站并发。如果是中小型网站,建议选用apache;如果大型并发,而且需要反向代理,选择nginx那是正确的选择。
第二、如果需要大量用到重写模块,建议选用Apache。
第三、根据熟悉程度。管理员书序Apache,但阅读和开发nginx能力有限,保守用Apache。
第四、系统资源有限,但是自身技术很强大,建议用nginx,因为nginx对系统资源暂用极小,同资源下比Apache高了差不多10倍之多。