504网关超时 - 上游超时

Hen*_*nri 2 fastcgi nginx

当我的服务器突然停止工作时,一切都运行得很顺利.我正在使用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:作业无法启动

怎么知道发生了什么?

Hen*_*nri 8

经过几个小时的调试后,我就是这样做的:

使用Ubuntu 12.04,Nginx和php5-fmp

  1. 请检查您的日志文件!日志文件是你的朋友.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秒

现在网站有效.我希望这解决了问题,因为它是间歇性的.