繁体   English   中英

WordPress环境和超高使用率(PHP-FPM)

[英]Wordpress Environment and Exceedingly high usage (PHP-FPM)

我在服务器上运行Wordpress的实例。 我的服务器一次至少需要支持1,000个并发。

我在Apache上使用带有FastCGI,Memcache和APC的PHP-FPM(PHP 5.4)进行我的选择缓存。 我们有两个MySQL服务器作为从服务器运行。

服务器具有以下资源容量:

Ram: 32GB
CPU: 8 Cores

我的运行Apache服务器的用户使用以下ulimit进行操作:

Hard: 4096
Soft: 1024

间歇性地有停机时间,当停机时间到来时,我们会收到Nginx(在单独的服务器上充当负载平衡器)的500个错误消息。 当我们收到这500个错误(它们的范围是500-504)时,在htop上我可以看到我们已经最大化了RAM使用率,并且间歇性地提高了CPU使用率(我假设这与数据库有关?)。 消耗这些资源的过程是PHP-FPM子过程。

我不是系统管理员,我只是开发人员。 因此,它开始无法触及。

php错误日志似乎报告以下内容:

[Mon Oct 10 12:54:33 2016] [error] [client 155.234.240.16] (104)Connection reset by peer: FastCGI: comm with server "/[MYURL].fcgi" aborted: read failed, referer: [MYURL]
[Mon Oct 10 12:54:33 2016] [error] [client 155.234.240.16] FastCGI: incomplete headers (0 bytes) received from server "/[MYURL].fcgi", referer: [MYURL]
[Mon Oct 10 12:54:34 2016] [error] [client 146.231.88.181] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

借助到目前为止我提供的信息,您是否能够协助我找到前进的方向,以便开始诊断此问题? 如果需要,我可以提供更多信息。

在WordPress的两种情况下,这些错误很常见-XMLRPC攻击或包装器配置不允许所需的FastCGI产生。 将Apache2与Nginx组合在一起使用时,问题过于广泛。 我正在写步骤。

FastCGI有效地防止站点遭到拒绝服务攻击或由于内存泄漏而崩溃。 对于Nginx PHP-FPM,这种情况总是要求检查XMLRPC攻击 (或类似的蛮力)并阻止它。 如果一个IP在一天之内请求600次,则显然是攻击。 因此,以上是第一步 ,您正在检查XMLRPC攻击,阻止WP臭名昭著的XMLRPC文件,并获取重复请求的IP次数。 这里是关于如何检查假PHP5-FPM攻击的信息-Nginx的wordpress-xml-rpc-attack-fake-php5-fpm-错误日志(您是Apache2,前面是Nginx,您可以使用我在其中编写的命令提取错误或IP的指南)。

第二步 ,Apache2 + PHP-FPM本身不完整的标头本身要求查看您的fcgi包装器( /dev/shm/blackmou-php.fcgi )或.htaccess来生成FastCGI。 这是包装器配置的示例:

PHP_FCGI_CHILDREN=0 
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS

另外,我们需要从php.ini增加memory_limit 对于Nginx上的类似情况,我们调整fastcgi_max_temp_file_sizefastcgi_buffers

fastcgi_buffers 256 16k;
fastcgi_max_temp_file_size 0;

如果以上都不是问题,请在第三步中 ,在wp-config.php文件中启用WP_DEBUG 您可能会看到有关插件问题的更好的错误消息,但没有保修。

如果不是问题,请执行第四步 ,停用所有插件,并使用默认主题几分钟。 如果没有任何显示,则主题或插件有问题。

另外,作为第五步 ,还有xdebug分析器用于检查。

注意事项:

  • 如果您担心数据库出现故障,请使用WordPress功能修复数据库。 但是,这不太可能。
  • 您应该已经正确配置了iptables,fail2ban,限制wp-login.php访问等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM