Nginx + PHP-FPM 超时,几乎零负载消耗?

jav*_*pas 5 nginx timeout wordpress php-fpm

我有一台服务器在 Linode 上运行,Ubuntu 10.04 LTS、Nginx 0.7.65、MySQL 5.1.41 和 PHP 5.3.2 和 PHP-FPM。

上面有一个 WordPress 博客,最近更新到 WordPress 3.2.1。

我没有对服务器进行任何更改(除了更新 WordPress),虽然它运行良好,但几天前我开始出现停机时间。

我试图解决这个问题,并检查了 error_log 我看到了许多似乎与超时有关的超时和消息。服务器当前正在记录此类错误:

2011/07/14 10:37:35 [warn] 2539#0: *104 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/2/00/0000000002 while reading upstream, client: 217.12.16.51, server: www.example.com, request: "GET /page/2/ HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.example.com/"

2011/07/14 10:40:24 [error] 2539#0: *231 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 46.24.245.181, server: www.example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.google.es/search?sourceid=chrome&ie=UTF-8&q=example"
Run Code Online (Sandbox Code Playgroud)

甚至看到了以前的 serverfault 讨论和一个可能的解决方案:编辑/etc/php/etc/php-fpm.conf和更改

request_terminate_timeout=30s
Run Code Online (Sandbox Code Playgroud)

代替

;request_terminate_timeout= 0
Run Code Online (Sandbox Code Playgroud)

服务器工作了几个小时,然后又坏了。我再次编辑文件以保持原样,并再次重新启动 php-fpm ( service php-fpm restart) 但没有运气:服务器工作了几分钟,然后一遍又一遍地回到问题。奇怪的是,虽然服务正在运行,但 htop 显示没有 CPU 负载(见图),我真的不知道如何解决问题。

在此处输入图片说明

配置文件在 pastebin 上

php-fpm.conf文件是在这里

/etc/nginx/nginx.conf 这里

/etc/nginx/sites-available/www.example.com 这里

adr*_*an7 -1

您是否尝试过在 nginx.conf 中代替“upstream”-ing 执行以下操作:

# Pass PHP scripts to PHP-FPM
location ~* \.php$ {
   try_files       $uri /index.php;
   fastcgi_index   index.php;
   fastcgi_pass    127.0.0.1:9000;
   include         fastcgi_params;
   fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
   fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}
Run Code Online (Sandbox Code Playgroud)

看看这里http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-optimizing-tips-and-tricks/

  • @adrian7你的建议绝对没用,因为“fastcgi_pass 127.0.0.1:9000;”和“upstream backend { server 127.0.0.1:9000;”之间没有区别。} fastcgi_pass 后端;`。 (3认同)