PHP / FastCgi – 哪个是使用nginx而不是使用apache的阈值

我是一名PHP开发人员,我一直在开发LAMP环境,现在一切都很顺利。 目前,我正在开发一个PHP Web应用程序,仍然在Apache上,没有使用任何框架。

PHP-fpm将在前端提供dynamic和静态内容,而php-cli脚本将通过一些cron-jobs(实际应用程序)在后端运行。

这一次,我正面临着并发问题,因为这个网站将被多个用户使用。 并发login用户的估计数量为50-75,至less在启动期间。

我几乎在任何地方都看过Nginx比Apache更好, 我已经阅读了很多解释它们之间差异的文章,我已经阅读了性能统计数据,但是我没有find实际的(并发用户)阈值,您应该从Apache切换到Nginx。

我只是想知道这一点,正如我上面所说的,我一直在使用Apache,Web服务器的改变是一个重要的select,特别是关于我将不得不花费在Nginx文档上以便完全理解它的行为/function。 事实上,我试图build立一个LEMP服务器,但Nginx现在听起来像阿拉伯语。

在这个“简短”介绍之后,这里是我的问题:

  1. 什么是切换到Nginx的recjomended阈值(用户数)?
  2. 假设我的网站同时不会有超过300个在线用户,那么即使服务内容更快一点,我是否真的要花上几个星期去研究Nginx呢?
  3. Apache / PHP-fpm和Nginx / PHP-fpm之间在安全性方面存在重大差异吗?
  4. 最后但并非最不重要的是:我刚刚从OVH切换到Digital Ocean。 数字海洋似乎太棒了。 它们为您提供LEMP服务器的预build图像。 Digital Ocean的Nginx安全设置有多less? 我只是因为我search了很多Nginx的强化技巧,其中大部分是构buildNginx 之前执行的。 使用Digital Ocean的LEMP服务器的人可以帮助我吗?

注:我想这个信息将是重要的,以回复:产品。 服务器(在启动时)将是:4c / 8t intel – 8GB内存 – SSD硬盘

非常感谢你。

首先,50-75个并发用户是没有的 – 任何一个Web服务器都可以在默认的,完全未优化的configuration下处理这个configuration,并且直到你在这个数字的末尾添加一个零(或两个),你并不需要担心。
如果你在这个级别有性能问题,你的问题可能在其他地方(数据库,应用程序代码)。


也就是说,没有什么神奇的“门槛”价值来考虑进行架构变革 – 事实上,如果你不想要的话,没有理由永远转换:如果你熟悉Apache,那么你可能希望保持它为了便于pipe理,并通过添加更多的服务器来分配工作负载来解决您的负载问题。

如果你想优化性能,你应该根据性能决定。 调整你的服务器(尽pipe你可以在这里看到Apache 2.2或Apache 2.4或这里的nginx ),然后加载testing来确定每个devise会给你什么样的性能。

如果基准数字接近,那么使用哪个Web服务器并不重要,因为devise中的其他位置存在瓶颈(testing应该告诉您瓶颈在哪里,以便您可以在系统的特定部分工作)。

如果数字是完全不同的,那么可以使用更快的Web服务器避免需要添加更多的硬件,但是在某些时候,您将需要添加更多的机器来处理高并发性 – 这只是Web的方式。


最后请记住, 每次你过早地优化Knuth杀死一只小猫 。 他说的是编程过早优化,但是系统pipe理和基础设施devise也是公理化的:如果在启动时不需要立即最大限度地提高性能,就可以部署你所知道的(以及你所testing的),并且逐步改进以后的performance。