我是一名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现在听起来像阿拉伯语。
在这个“简短”介绍之后,这里是我的问题:
注:我想这个信息将是重要的,以回复:产品。 服务器(在启动时)将是: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。