使用Nginx作为主要Web服务器的缺点?


12

我已经看到数百万个网站使用nginx作为与Apache一起工作的代理Web服务器。但是我看到很少有服务器仅将nginx作为其默认Web服务器运行。这种配置的主要缺点是什么?

我可以看到一些:

  • 无法使用每个目录的配置文件(例如.htaccess),因此应对主服务器配置文件进行每次配置更改,并且需要重新加载服务器。但是pecl htscanner可以补偿他们的php设置
  • nginx的mod_php不可用,例如可以通过php-fpm进行补偿。

还有什么 人们为什么不放弃Apache而转而使用nginx或任何其他轻量级解决方案?可能是因为某些特殊原因?

编辑:这个问题主要是关于使用LAMP堆栈。


1
心智,惯性,投资。一直如此。
伊格纳西奥·巴斯克斯

在新服务器上设置Nginx需要什么投资?它是免费的开源软件。
弗拉迪斯拉夫·拉斯特鲁尼(Fladislav Rastrusny),2010年

3
研究,部署,测试等所需的时间投入
ThatGraemeGuy 2010年

如果说到数量,恕我直言,最大的原因是使用Apache的共享主机数量庞大。将nginx设置为共享服务(例如在cPanel,Plesk等中)还不像使用Apache那样容易,特别是对于最终用户而言。而且我知道许多专用服务器都在单个站点上运行,但仅仅因为其简便性,熟悉性和低安装成本而使用cPanel / Plesk / etc。
HalilÖzgür11年

Answers:


9

根据我的#nginx经验,这几乎总是因为对Apache .htaccess文件的熟悉,而不希望丢失该文件或依赖它。例如,运行共享服务器托管的人员只希望卸载静态文件,并保持apache以便用户摆弄。

老实说,除了为最终用户保留.htaccess之外,我真的无法想到其他任何代理Apache的原因。

编辑:实际上,mod_php和phpsuexec用于共享主机可能是坚持使用Apache的另一个原因。


根据我的经验,很难通过nginx从tomcat获得良好的性能,因为apache2的ajp-worker在高压下明显更快。我知道nginx有一个实验性的ajp13实现,但是它不稳定并且没有很好的文档记录。
pauska,2010年

1
那很有可能。Nginx最适合作为fastcgi或HTTP 1.0反向代理。我知道有用于与scgi,wsgi等交谈的第三方模块,但我不能说它们的稳定性,甚至速度有多快。
马丁·峡湾

顺便说一句,mod_php不适用于suexec。Suexec适用于CGI应用程序。
弗拉迪斯拉夫·拉斯特鲁尼(Fladislav Rastrusny),2010年

好吧,你走了,没有真正的原因。成为nginx用户太久了,甚至无法记住Apache。:D
马丁·峡湾

6

如果您有一堆可以使Apache正常运行的人,为什么还要重新学习全新的应用程序和配置,迁移mod_rewrite规则,重做mod_perl / php / etc配置,重新测试,重新部署呢?

两种软件堆栈可能都是免费的,但是“重新培训,重新开发,重新测试”不是免费的,现在应该添加用户关心的功能1,而不是为了修补而修补。

1我显然不是在谈论个人项目。


2

我喜欢Nginx,但是有两点使我无法将其用于网站。

  • 设置PHP-FPM很难。我还没有用最新的PHP版本成功做到这一点。

  • Nginx不支持HTML5 Websocket,我对此很感兴趣。


1
您能说出您使用nginx和php-fpm遇到的困难吗?关于HTML5 WebSocket,Apache似乎还没有它们:issue.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny 2010年

我也想知道php-fpm的问题。如果您可以不使用源代码就编译PHP,那么使用它也非常简单。
马丁·峡湾

1
5.3分支已经在其中了,所以只需完成./configure --enable-fpm就可以了。
弗拉迪斯拉夫·拉斯特鲁尼(Fladislav Rastrusny),2010年
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.