经过几个小时的调试,我是这样做的:
使用 Ubuntu 12.04、Nginx 和 php5-fmp
请检查您的日志文件!日志文件是你的朋友。504 网关问题意味着我的服务器无法与网站正常通信。所以就我而言,我有 Nginx 和 php-fpm 来管理请求。我必须检查 2 个日志文件:
/var/log/nginx/error.log 和 /var/log/php5-fpm.log
在错误日志中:
recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 76.66.174.147, server: xxxxxxx.com, request: "GET /wp-admin/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.xxxxxxx.com"
在 php5-fpm.log 中:
无法为地址“127.0.0.1:9000”绑定侦听套接字:地址已在使用中 (98)
所以我发现我需要通过键入来检查我的 php5-fpm 进程
netstat | grep 9000
tcp 0 0 localhost.localdom:9000 localhost.localdo:58424 SYN_RECV
tcp 913 0 localhost.localdom:9000 localhost.localdo:57917 CLOSE_WAIT
tcp 857 0 localhost.localdom:9000 localhost.localdo:58032 CLOSE_WAIT
tcp 1633 0 localhost.localdom:9000 localhost.localdo:58395 CLOSE_WAIT
tcp 961 0 localhost.localdom:9000 localhost.localdo:58025 CLOSE_WAIT
tcp 857 0 localhost.localdom:9000 localhost.localdo:58040 CLOSE_WAIT
tcp 953 0 localhost.localdom:9000 localhost.localdo:58005 CLOSE_WAIT
tcp 761 0 localhost.localdom:9000 localhost.localdo:58016 CLOSE_WAIT
tcp 1137 0 localhost.localdom:9000 localhost.localdo:57960 CLOSE_WAIT
很多close_wait!!!这是不正常的......所以我通过输入
fuser -k 9000/tcp杀死了所有进程
然后我改变了我的
/etc/php5/fpm/pool.d/www.conf
并改变这个:
request_terminate_timeout=30s
现在网站可以工作了。我希望这可以解决问题,因为它是间歇性的。