2

当我的服务器突然停止工作时,一切都运行顺利。我正在使用带有 Nginx fast-cgi 的 Linode

这是我的日志文件:

从上游读取响应标头时上游超时(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;
}

当我想重新启动mysql时,它说:

sudo service mysql restart stop:未知实例:开始:作业无法启动

知道发生了什么吗?

4

3 回答 3

8

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

使用 Ubuntu 12.04、Nginx 和 php5-fmp

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

现在网站可以工作了。我希望这可以解决问题,因为它是间歇性的。

于 2013-10-18T15:27:47.497 回答
1

检查 PHP 是否仍在运行:sudo ps aux | grep php

如果是,则重新启动它,sudo service php5-fpm restart如果不启动它sudo service php5-fpm start

如果您需要重新启动数据库,只需将restart, stopor传递startservice命令:sudo service mysql startor sudo service mysql restartor sudo service mysql stop

于 2013-10-16T18:47:59.517 回答
-1

我刚刚安装了 winginx 并且遇到了 504 网关问题。错误日志指向上游服务器“fastcgi://127.0.0.1:9000”。这是 nginx 代理 php 的地方。

我打开php-cgi.conf,发现php正在监听9054端口。将端口改为9000,一切正常。

网关是 nginx 用来连接服务的路由和/或端口。例如,Mongodb 被配置为开箱即用地侦听端口 27017。出于安全原因,我倾向于更改生产服务器上 php 等服务的默认端口。

于 2014-01-30T16:33:50.963 回答