nginx fastcgi 超时问题
在处理导入导出大数据的情况下,一般要调整以下一些参数:
1.php.ini: set_time_limit(0); max_execution_time=1200; 这个是程序执行时间;
2.php-fpm.conf: request_terminate_timeout 1200;
3.nginx_conf:
fastcgi_connect_timeout 1200;
fastcgi_send_timeout 1200;
fastcgi_read_timeout 1200;
这些数据最好保持一致,详细的请下以下内容:
在网站后台导数据时,出现超时的情况。经过网上查找资料和试验
主要在下面几个配置的限制
1.php配置
第一种:set_time_limit(0); 永不过期
第二种: php.ini max_execution_time = 1200
----实际是在本地用apache测试的时候已调整,估计nginx也是一样需要做调整
一般时间较长的导入操作,数据量也是较大的,需要根据实际需要调整php.ini memory_limit = 64M。如果代码中有重新配置这个值,也需要检查。
2.php-fpm.conf
request_terminate_timeout 1200
设置为20分钟过期
----配置完成后一定记得重启哦。我就是忘记重启,然后以为这个配置改了也没用,浪费了不少时间。
service php-fpm reload(或restart) 一般配置修改都建议用reload
3.nginx.conf
fastcgi_connect_timeout 1200;
fastcgi_send_timeout 1200;
fastcgi_read_timeout 1200;
-----主要应该是后面两个参数,设置为20分钟。当然我没做把第一个参数改小的测试,条件允许的话可测试下。
配置好后重启
service nginx reload
依然推荐使用reload
----------------超时的问题以上配置应该基本上能解决问题。这种大数量导入主要从文件大小和超时问题去考虑。涉及内存大小、超时时间配置。
本次调整主要是nginx服务器出现502 bad gateway的错误,超时是这个错误的原因之一。其他包含连接数、缓冲区大小等等也是影响因素。这个不做详细讨论。