我在 CentOS VPS 上托管了几个网站,一切都运行良好,直到服务器上的一个 WordPress 网站开始返回错误502 Bad Gateway
。其他网站运行良好。如果我重命名 BuddyPress 插件目录,WordPress 网站将会加载,但我不确定如何调试此插件中现在导致问题的是什么(该插件以前可以正常工作,但尚未更新)。使用我的本地 Apache 安装,完全相同的代码/数据库将正常工作,因此它似乎特定于服务器配置。不使用此插件不是一个选项,所以我的问题更多是关于如何调试服务器配置。
我的配置:
CentOS 5.10
Nginx 1.60
PHP 5.5
spawn-fcgi 1.6.3
错误:
浏览器
502 Bad Gateway nginx/1.6.0
Nginx/PHP 错误日志
2014/06/28 19:40:13 [error] 8146#0: *22994 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: *.example.com, request: "GET / HTTP/1.0", upstream: "fastcgi://127.0.0.1:53217", host: "www.example.com" 2014/06/28 19:40:14 [error] 8146#0: *22980 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.123.123.123, server: *.example.com, request: "GET /about/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:53217", host: "www.example.com", referrer: "https://www.example.com/about/"
/var/log/消息
Jun 28 19:40:13 web1 kernel: php-cgi[27053]: segfault at 000000000000002c rip 00000000005bc798 rsp 00007fffc73f0ae0 error 4 Jun 28 19:40:13 web1 kernel: php-cgi[10559]: segfault at 000000000000002c rip 00000000005bc798 rsp 00007fffc73f0ae0 error 4 Jun 28 19:40:14 web1 kernel: php-cgi[17410] general protection rip:5bc798 rsp:7fffc73f0ae0 error:0
我尝试过的事情:
- 已验证 spawn-fcgi 正在运行并响应请求(其他站点正常运行)
- 增加 PHP 内存 —
php.ini
— 即使允许 1GB 内存也有同样的效果。 设置 fastcgi 缓冲区
nginx.conf
fastcgi_buffering on; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;
答案1
nginx.conf
我最终通过在PHP 文件中设置以下值解决了该问题。这些proxy_*
条目似乎起了作用。
proxy_buffer_size 128k;
proxy_buffers 4 256k
proxy_busy_buffers_size 256k;
fastcgi_buffering on;
fastcgi_buffer_size 16k;
fastcgi_buffers 16 16k;
当然,经过几天的努力,我在发帖后不到 10 分钟就解决了这个问题......