使用Nginx作为WEB服务器时,经常会遇到504 Gateway Time-out的错误提示。经过研究,基本可以确定多数情况下这个错误与Nginx本身无关,问题的根源在于Nginx将PHP的解析提交给后端php-fpm处理的过程中,由于fastcgi参数配置不当造成的超时等一系列的问题。
通过查询相关资料,总结了fastcgi配置参数的调整方案,供大家参考,详细如下:
修改 php-fpm 配置文件:
1.把 max_children 改为64,保证有充足的php-cgi进程可以被使用;
2.把 request_terminate_timeout 改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。
修改 nginx.conf 文件,如下:
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 3600;
fastcgi_buffers 4 256k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;