XinFocus'Blog 聚焦互联网技术_网络营销推广_工商财税_知识产权_商标专利_苏州创客_创业政策_美文分享

Nginx和Apache有什么区别及如何选择?

目前的中小网站,在Linux系统上跑PHP+MySQL应该是首选的方式了,比如WordPress、Z-Blog、Discuz、PHPwind等。当然这些程序你也可以在Windows服务器上跑,不过性能嘛,肯定没有在Linux下强Linux+Nginx+MySQL+PHP(LNMP)和Linux+Apache+MySQL+PHP(LNMP)已经是绝配了,而且现在操作难度也不大,各种一键安装包网上都有,甚至你买一台VPS,提供商都已经为你准备好了相关的运行环境,非常方便!那么问题来了,建站初期,我是该选LNMP还是LAMP呢?

一、Nginx与Apache的区别

  1、二者最核心的区别在于Apache是同步多进程模型,一个连接对应一个进程;Nginx 是异步的,多个连接(万级别)可以对应一个进程。Nginx处理静态文件好, 耗费内存少. 但无疑Apache仍然是目前的主流, 有很多丰富的特性. 所以还需要搭配着来. 当然如果能确定Nginx就适合需求, 那么使用Nginx会是更经济的方式。

  2、Nginx的负载能力比Apache高很多。最新的服务器也改用Nginx了。而且Nginx改完配置能 -t 测试一下配置有没有问题。

  3、Apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端Nginx抗并发,后端Apache集群,配合得也不错。

  4、Nginx处理动态请求是鸡肋,一般动态请求要Apache去做,Nginx只适合静态和反向。

  5、从经验来看,Nginx是很不错的前端服务器,负载性能很好,Nginx用webbench模拟10000个静态文件请求毫不吃力。Apache对php等语言的支持很好,此外Apache有强大的支持网络,发展时间相对Nginx更久,bug少但是Apache有先天不支持多核心处理负载鸡肋的缺点,建议使用Nginx做前端,后端用Apache。大型网站建议用Nginx自代的集群功能。

  6、大部分情况下Nginx都优于Apache,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持连接等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache 进程数飙升,从而拒绝服务的现象。

  7、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧!

  8、一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache吧。

二、Apache与Nginx优缺点比较

1、Nginx相对于Apache的优点

  轻量级,同样web服务,比Apache占用更少的内存及资源;抗并发,Nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能;高度模块化的设计,编写模块相对简单;社区活跃,各种高性能模块出品迅速啊;Nginx本身就是一个反向代理服务器,Nginx支持7层负载均衡;Nginx可能会比Apache支持更高的并发,Nginx配置文件写得很简洁,正则配置让很多事情变得简单运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器!

2、Apache相对于Nginx的优点

  Rewrite功能比Nginx的强大;模块超多,基本想到的都可以找到;Bug少,Nginx的Bug相对较多;超稳定,Aapch依然是大部分公司的首先,因为其成熟的技术和开发社区,以及非常不错的性能。

三、为什么现Nginx才是Web服务器首选

  作为Web服务器,相比Apache,Nginx使用更少的系统资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。

  在高连接并发的情况下,Nginx是 Apache服务器不错的替代品。Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达50,000 个并发连接数的响应, 感谢Nginx为我们选择了epoll and kqueue作为开发模型。Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务.

  Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验:Nginx 是一个安装非常简单、配置文件非常简洁(还能够支持 perl 语法)、Bugs 非常少的服务器;启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,你还能够不间断服务的情况下进行软件版本的升级。

  Nginx 配置简洁, Apache 复杂,Nginx 静态处理性能比Apache高3倍以上,Apache对PHP支持比较简单,Nginx需要配合其他后端用,Apache的组件比Nginx 多。

文章转自:https://www.hack520.com/470.html

同步发布:http://www.kkddcc.com/post/Nginx-Apache-LNMP-LAMP.html

留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。