Nginx缺少Apache有什么?


11

据说Nginx比Apache更节省资源,更易于配置。一位朋友告诉我:“它无法完成Apache可以做的某些事情,但我还是不需要这些。”

不过,我很好奇:Apache可以做Nginx无法做的哪些事情?我并不需要详尽的清单,仅是有关Apache会是一个更好选择的场景的总体思路。

Answers:


9

我认为Nginx仍然缺少的最大部分是对WebDAV的全面支持。核心模块或第三方模块几乎涵盖了所有其他方面。

Nginx在设计上不支持mod_php之类的东西,因此我不确定您是否可以说Nginx缺少这些部分。更像是Nginx相当有力地告诉您使用它是愚蠢的。


+1虽然我不同意mod_php的所有可能用法及其类似用法都是“愚蠢的”,但我还是同意其余的观点。
克里斯S

这是一个讨厌PHP的评论,还是mod_php本身有本质上的坏处?链接?我问是因为我几乎所有的东西都使用mod_php ..请,我不在乎您认为更好的是什么,我只想知道mod_php出了什么问题
Safado 2012年

3
mod_php与PHP本身无关。它与PHP与Apache的交互方式有关。问题是,当您将PHP嵌入Apache时,处理PHP的过程和处理2kb图像文件的过程是完全相同的过程。如果最终客户的速度很慢,那么您非常昂贵的过程可能会在2秒钟内提供一幅小图像,这是它无法花费在PHP上的时间。
Martin Fjordvald 2012年

+1“更像是Nginx相当有力地告诉您使用它是愚蠢的。”

4

Apache有大量可用的模块,这些模块允许使用Nginx无法实现的某些部署方案。

一个示例是mod_dav_svn通过HTTP托管Subversion。它适用于Apache。其他值得注意的例子是mod_perlmod_php。虽然大多数传统设置也可以通过FCGI(或WSGI或乘客)完成,但是如果需要在Web服务器内部实现自定义身份验证方案(例如,使用git或svn托管完成),则在进程中进行实际的解释器将是有益的。 Redmine / ChiliProject)。

通常,您的朋友是对的:大多数常见的部署方案也可以使用nginx解决,但是如果您必须构建一些“特殊”的东西,Apache仍然更加灵活。


3

故事的简短版本是Apache 围绕着它建立了许多插件和社区。Nginx相对来说只存在了很短的时间,因此它还没有社区代码库。

当人们问我有什么区别时,Nginx是牛排刀,它对多种用途都有好处,并且做得非常好。Apache是​​瑞士军刀,它具有许多不同的功能,并且所有功能都做得相当好。


我认为您可能对Nginx可以做的事情有些过时了,在某些方面,它比Apache更具通用性。缺少HTTP / 1.1代理和WebDAV,我想不到它缺少很多东西。
Martin Fjordvald 2011年

@MartinFjordvald Nginx有很多功能是故意选择不执行的,您不能说它们“缺失”了,但是您不能声称Nginx可以做到Apache可以做的所有事情。这是一个折衷,我为Nginx为他们做出的选择而称赞。
克里斯·S

好吧,因为现在支持我的原始注释HTTP / 1.1代理,因此我们不支持webdav和svn托管。就是说,如果我们不考虑动态链接模块之类的问题,那么nginx决定到目前为止不这样做是对的。
Martin Fjordvald 2012年

1

许多模块和一个庞大的安装基础,开始。但是,这不完全是Apache的,你应该看,什么是Apache的:它的工作方式更好地服务,如PHP,Python和Perl中,Java等动态内容

当然,您也可以使用Nginx来做到这一点(但是,IMHO有点黑),但是与在NginX上运行相比,该解决方案在Apache上运行的方式更加成熟和成熟,在提供高负载和出色性能方面比Apache更好。重写器/反向代理。

对于每个工作,正确的工具!


也许这是在2008年我第一次在生产Web服务器上部署Nginx之前的情况,但现在看来并非如此。我很乐意看到为什么您相信Apache在Web服务器中包含解释器的模型更好的原因的扩展。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.