nginx php解析过慢

nginx 报错 upstream timed out (110: Connection timed out)解决方案

error.log报错如下:

2013/05/18 21:21:36 [error] 11618#0: *324911 upstream timed out (110: Connection timed out) while reading response header from upstream,
client: 42.62.37.56, server: localhost, request: "GET /code-snippet/2747/HTML5-Canvas-usage HTTP/1.0",
upstream: "fastcgi://127.0.0.1:9002", host: "outofmemory.cn", referrer: "http://outofmemory.cn/code-snippet/tagged/canvas"

  

报这个错误之后,整个服务器就不响应了,但是nginx后面的webpy程序没有任何错误,后端的数据库也很正常,从网上查了很多资料,都是说要修改proxy_read_timeout,proxy_send_timeout和proxy_buffer几个相关设置的值。

如下配置,要放在server或者http配置节之内

large_client_header_buffers  16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
#proxy_connect_timeout ;
#proxy_read_timeout ;
#proxy_send_timeout ;
#proxy_buffer_size 64k;
#proxy_buffers 32k;
#proxy_busy_buffers_size 64k;
#proxy_temp_file_write_size 64k; fastcgi_connect_timeout ;
fastcgi_read_timeout ;
fastcgi_send_timeout ;
fastcgi_buffer_size 64k;
fastcgi_buffers 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;

你可以看到上面是proxy_和fastcgi_两种配置,就是说如果你的nginx后面是proxy,就设置proxy相关的配置,如果是fastcgi就设置fastcgi相关的配置。

现在暂时服务器没报错了,坐等下一次报错

续:现在只看到

[warn] 12483#0: *1472 a client request body is buffered to a temporary file /www/wdlinux/nginx-1.0.12/client_body_temp/0000000001, client: 119.188.35.16, server: www.shejiqun.com, request: "POST /Designer-saveLoad-tuku-1.html HTTP/1.1", host: "www.shejiqun.com"

续:服务器经常php解析卡死

查看error.log文件,显示很多超时

判断是进程数不够

增加nginx进程数:

worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}

另外,查看了一下php-fpm日志,发现

fpm_children_bury() fpm_children_make()错误    
修改php-fpm.conf的配置,将max_requests和max_children调整为合适的值。
<value name="max_requests">102400</value>
<value name="max_children">100</value>

另外,增加系统打开文件最大个数配置

在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
 
待续,看问题是否得到解决

  

上一篇:【你吐吧c#每日学习】10.29 C#字符串类型&Common operators


下一篇:ImportError: No module named _winreg