【问题标题】:Nginx v Apache for high traffic sites用于高流量站点的 Nginx v Apache
【发布时间】:2012-06-25 16:26:07
【问题描述】:

nginx 会更适合作为高流量网站的网络服务器吗?

我们将建立的网站是一个电子商务网站,如果这会有所作为的话。

无论哪种方式,从技术角度来看,我都对实际的“为什么”很感兴趣。即,从技术角度来看,为什么nginx 会是此类网站的更好选择,或者相反,为什么不呢?

【问题讨论】:

  • 谢谢@Dougal - 非常好的链接:) - 我正在寻找这些服务器的特定用例的建议,而不是一般的 Apache v nginx。不过,感谢您的意见,您是一个知识渊博的小伙子,感谢您抽出时间提供该链接

标签: apache nginx


【解决方案1】:

马丁,

一般来说,Nginx 更适合高流量站点,因为它具有事件驱动的架构。它不是在不同的线程中处理每个请求,而是使用非阻塞 I/O 来为每个线程中的许多请求提供服务。

这种架构的重要方面是减少了进程或线程的使用。一个线程可以消耗从 2MB 到超过 64MB 的 RAM。因此,当 Apache 提供 10KB JPEG 时,它实际上可能会使用大量 RAM。如果您的客户端速度较慢(例如智能手机),请求可能会使线程忙几秒钟,情况会变得更糟。

许多人发现在 Apache 之前运行 Nginx 作为代理是一个理想的中间地带。 Nginx 与慢速客户端对话,并且可以使用非常少量的 RAM 来完成。当请求转发到 Apache 时,请求速度受限于您的本地连接,而不是远程用户的连接。这意味着网络瓶颈不会让请求(以及占用内存的线程)保持活动的时间超过必要的时间。

简而言之,您将获得 Nginx 的低资源优势以及 Apache 的广泛功能集。

【讨论】:

  • apache2-mpm-事件。还没有比较它,但它与 Apache 的架构相同,应该提及。
  • @cliff.wells 通过事件驱动架构,你的意思是当 PHP 准备好响应时 Nginx 会收到有关事件的通知?另外,我不明白第二部分,即 Apache 的广泛功能集是什么意思,以及它如何使在 Apache 前面作为代理运行 Nginx 成为理想的中间地带。
  • so php on nginx 可以给 node js 的性能等效?
  • @MaazRehman 这也取决于相关语言的相对速度。
  • 哦。但据我所知,Node js 是异步的,而 php 通常不是。这是否使得比较 node js 和 php 无关紧要?
猜你喜欢
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多