有说504 Gateway Time-out的错误提示与Nginx本身是没有任何关系的我们可以通过fastcgi配置参数的调整进行解决。
修改 php-fpm 配置文件:
1.把 max_children 根据系统修改下,保证有充足的php-cgi进程可以被使用;
修改php-fpm配置文件增加php-cgi进程数量
修改php-cgi进程数:
代码如下
vi /usr/local/php/etc/php-fpm.conf
找到:
<value>5</value>
找到按你的内存容量修改PHP进程的数量,一般128内存开启6个,256内存开启16个。这样能保证,在 PHP大并发的情况下不会502错误。一个进程占12M-20M不等,具体开多少个根据内存大小自己决定。
max_children用于设置FastCGI的进程数。根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。
2.把 request_terminate_timeout 改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。
修改 nginx.conf 文件,如下:
代码如下
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffers 4 256k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
之后再重启你的服务器 /etc/init.d/php-fpm restart 即可解决了
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块