我们已经看到了几个操作,其中一个简单的尖叫青蛙操作几乎会关闭我们的服务器(它不会停止,但它会减慢到几乎停止,PHP进程变得疯狂)。我们运行Magento ;)
现在我们应用了Nginx规则集:https://gist.github.com/denji/8359866
但是我想知道有没有更严格或者更好的方法来踢掉gready爬行者和尖叫的青蛙爬行者。假设‘经过2分钟’的密集请求,我们应该已经知道有人正在运行一些自动化系统的太多请求(当然不会阻止Google机器人)。
感谢您的帮助和想法
发布于 2016-07-02 05:28:42
看到简单的SEO实用程序扫描可能会导致服务器爬行,您应该意识到阻止爬行器并不是真正的解决方案。假设您已经成功地阻止了世界上的每个爬行器,或者创建了一个复杂的规则集来定义每秒请求的数量是合法的,而这个不是。
但是很明显,你的服务器不能同时处理几个访问者。当你的商店收到更多的流量时,更多的访问者就会让你的服务器宕机。
您应该解决主要的性能瓶颈,即PHP。
PHP很慢。有了Magento,速度就慢了。就这样。
想象一下,对Magento存储的每个请求都会导致扫描和解析数十个PHP文件。这会对CPU造成很大的影响。
如果你有未优化的PHP-FPM配置,这也会严重影响你的RAM。
为了缓解PHP的压力,以下是应该按优先级顺序执行的操作:
利用全页面缓存
真的,这对Magento来说是必须的。您不会失去任何东西,但只会获得性能。常见的选择包括:
调整PHP-FPM池设置
确保您的PHP-FPM池配置正确。如果pm.max_children的值太小,则会导致页面请求变慢。过高的值可能会挂起您的服务器,因为它将缺少RAM。对于启动器,将其设置为(总RAM的50%除以128MB)。
确保调整pm.max_requests并将其设置为一个合理的数字,即500。很多时候,将其设置为0(默认值)将导致“胖”PHP进程,最终将吞噬服务器上的所有RAM。
PHP 7
如果你运行的是Magento 2,你真的应该使用PHP7,因为它比PHP5.5或PHP5.6快两倍。
在我的博客文章Magento 1.9 performance checklist中,对配置的建议也是一样的。
https://stackoverflow.com/questions/32937046
复制相似问题