当我的服务器突然停止工作时,一切都运行得很顺利.我正在使用Linode和Nginx fast-cgi
这是我的日志文件:
上游超时(110:连接超时),同时从上游读取响应头,客户端:76.66.174.147,服务器:iskacanada.com,请求:"GET/HTTP/1.1",上游:"fastcgi://127.0.0.1: 9000",主持人:"www.iskacanada.com"
location ~ \.php$ {
include fastcgi_params;
fastcgi_read_timeout 120;
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Run Code Online (Sandbox Code Playgroud)
当我想重启mysql时,它说:
sudo service mysql restart stop:未知实例:start:作业无法启动
怎么知道发生了什么?
经过几个小时的调试后,我就是这样做的:
使用Ubuntu 12.04,Nginx和php5-fmp
请检查您的日志文件!日志文件是你的朋友.504网关问题意味着我的服务器无法与网站正常通信.所以在我的情况下,我有Nginx和php-fpm管理请求.我不得不检查2个日志文件:
/var/log/nginx/error.log和/var/log/php5-fpm.log
在error.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"
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
很多close_wait !!! 这是异常的...所以我通过输入
fuser -k 9000/tcp 来杀死所有进程
我改变了我的意思
/etc/php5/fpm/pool.d/www.conf
并改变这个:
request_terminate_timeout = 30秒
现在网站有效.我希望这解决了问题,因为它是间歇性的.