做为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发链接,体现更高的效率html
Nginx 静态处理性能比 Apache 高 3倍以上 前端
最核心的区别在于apache是同步多进程模型,一个链接对应一个进程;nginx是异步的,多个链接(万级别)能够对应一个进程nginx
nginx的负载能力比apache高,能抗并发apache
nginx处理动态请求是鸡肋,通常动态请求要apache去作,nginx只适合静态和反向后端
Apache在处理动态有优点,Nginx并发性比较好,CPU内存占用低,若是rewrite频繁,那仍是Apache吧浏览器
一个典型的网络应用服务器由两部分组成,客户端链接部分负责用户浏览器与http链接,一般保持1-2分钟的tcp/ip协议,服务器可嫩要同时承担和处理数以万计的并发链接,这直接与Apache只有500条进程,即500个http链接的处理能力上限相冲突,因此有100个用户同时访问,而且平均每一个人打开六个网络链接时,Apache就已经满负荷了!!服务器
第二部分是应用程序处理部分,这部分承担了代码运算。在大多数系统中,这部分工做是最消耗RAM和CPU资源的,所以进程数量必须被严格限制,一般是大约每 1GB的内存10个进程,或者每一个CPU核心两个进程。所以一台4GB RAM、16内核的服务器最多只能运行32个应用程序进程。可是,问题的关键是,Apache直接链接前端客户端通信组件与后端应用程序进程组件。如此一来,前端部分每每保持长时间的链接,经常达到几分钟,这致使后端部分将持续消耗内存和CPU资源。网络
Apache是很是强大的Web服务器,模块化结构,也是Web服务端的鼻祖。世界上大多数网站仍运行着Apache系统。可是,Apache并非完美的,而且再也不适合大规模系统。为何?由于他的进程模式虽然简单而灵活,但并不适合大规模尤为是当要处理像PHP这种须要占用大量内存应用程序代码时。并发
咱们大多数的客户在他们的服务器上使用Apache做为Web服务器,尤为是部署在一个基于PHP系统的前端而且使用mod-PHP。鉴于扩张性和性能方面的缘由,咱们一般会建议他们改用Nginx和FPM。异步
Apache是很是强大的Web服务器,模块化结构,也是Web服务端的鼻祖。除了捆绑一些其余的工具外,Apache已经成为了世上最普遍部署的开源系统,直到最近,世界上大多数网站仍运行着Apache系统。
可是,Apache并非完美的,而且再也不适合大规模系统。为何?由于他的进程模式虽然简单而灵活,但并不适合大规模尤为是当要处理像PHP这种须要占用大量内存应用程序代码时。
一个典型的网络应用服务器由两部分组成。客户端链接部分负责用户浏览器与HTTP链接,保持长时间的TCP/IP协议,一般是1到2分钟。对于一个大型的系统,服务器可能要同时承担和处理数以万计的并发链接。
这直接与Apache只有500条进程即500个HTTP链接的处理能力上限相冲突。而现今的浏览器让这个问题更加严重, 由于如今的浏览器平均每一个主机会打开六个网站连接(几年前是两个网站连接)。因此当超过100个用户同时访问时,Apache就已经满负荷了。