登录 |  注册 |  繁體中文


Nginx中FastCGI配置详解

分类: 服务器相关 颜色:橙色 默认  字号: 阅读(147) | 评论(0)
fastcgi_connect_timeout指定连接到后端FastCGI的超时时间。
fastcgi_send_timeout 是指nginx进程向fastcgi进程发送request的整个过程的超时时间
fastcgi_read_timeout 是指fastcgi进程向nginx进程发送response的整个过程的超时时间, 
 
fastcgi_buffer_size用于指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小。
fastcgi_buffers指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。
fastcgi_busy_buffers_size的默认值是fastcgi_buffers的两倍。
fastcgi_temp_file_write_size表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
fastcgi_cache表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生,但是开启缓存也会引起很多问题,要视具体情况而定。
fastcgi_cache_valid、fastcgi用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。
 
一、分析问题:
 
Nginx 504 Gateway Time-out的含义是PHP-CGI执行时间超过了nginx.conf里的 fastcgi_read_timeout   或者是  资源不足
 
Nginx 502 Bad Gateway的含义请求的PHP-CGI已经执行,但是由于没有执行完毕而导致PHP-CGI进程终止(一般是超过fpm.conf里的request_terminate_timeout)。
1、从超时角度来讲
    1.1  如果fpm超时时间小于nginx超时时间,并且达到了超时时间的话, 也就是fpm先超时,前端会返回502
    1.2  如果nginx超时时间小于fpm超时时间,并且达到了超时时间的话, 也就是nginx先超时, 前端会返回504
 
二、日志文件具体表现如下:
 
2.1)Nginx相关日志
 
 failed (104: Connection reset by peer) while reading... 
 timed out (110: Connection timed out) while reading response...
 
2.2)php相关日志
 
WARNING:  child 25718 exited on signal 15 (SIGTERM) after 21008.883410 seconds from start
 

具体关于502和504详见我的另一遍文章

ginx 502 Bad Gateway,Nginx 504 Gateway Time-out 详解




姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部