据说Nginx比Apache更节省资源,更容易configuration。 一位朋友告诉我说:“它不能做一些Apache可以做的事情,但是我不需要那些东西。”
不过,我很好奇: Apache能做些什么Nginx不能做的事情? 我不需要一个详尽的列表,只是一个普遍的想法,其中Apache将是一个更好的select。
我认为Nginx中仍然缺less的最大的部分是完整的WebDAV支持。 几乎所有其他方面都由核心或第三方模块覆盖。
Nginx不支持像mod_php这样的devise,所以我不确定你可以说Nginx是缺less这些部分的。 这更像是Nginx正在强有力地告诉你,使用它是愚蠢的。
Apache提供了大量的模块,允许一些Nginx无法实现的部署场景。
一个例子是mod_dav_svn通过HTTP托pipeSubversion。 它只适用于Apache。 其他着名的例子是像mod_perl或mod_php 。 虽然大多数传统设置也可以通过FCGI(或WSGI,或乘客)来完成,但如果您需要在Web服务器内部实现自定义身份validationscheme(例如为git或svn托pipepipe理平台/ ChiliProject)。
一般来说,你的朋友是正确的:最常见的部署scheme也可以用nginx来解决,但是如果你需要构build一些更“特殊”的东西,Apache仍然更加灵活。
这个故事的简短版本是Apache有很多插件和社区。 Nginx只是比较短暂的一段时间,所以它还没有社区代码库。
当人们问我有什么不同时,Nginx是一款牛排刀,适合各种用途,并且做得非常好。 阿帕奇是瑞士军刀,它有很多不同的特点,并且都做得相当好。
开始,许多模块和ginourmous安装基地。 但是Apache并不是Apache 所应具备的东西,而是Apache 所做的事情:它可以更好地为PHP,Python,Perl,Java等dynamic内容提供服务。
当然,你也可以用Nginx来做这件事(但是这是一个有点骇人听闻的恕我直言),但是这些解决scheme在Apache上比在Nginx上运行得更加成熟和成熟,而Apache在服务高负载方面比Apache更好,重写器/反向代理。
对于每个工作,正确的工具!