Nginx+;Php fpm fastcgi上游超时
我对长时间运行的PHP脚本有问题:Nginx+;Php fpm fastcgi上游超时,php,nginx,timeout,fastcgi,fpm,Php,Nginx,Timeout,Fastcgi,Fpm,我对长时间运行的PHP脚本有问题: <?php sleep(70); # extend 60s phpinfo(); 我仔细研究了相关问题,并尝试增加超时时间,创建了一个包含以下内容的/etc/nginx/conf.d/timeout.conf文件: proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; fastcgi_read_timeout 600; f
<?php
sleep(70); # extend 60s
phpinfo();
我仔细研究了相关问题,并尝试增加超时时间,创建了一个包含以下内容的/etc/nginx/conf.d/timeout.conf
文件:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_connect_timeout 600;
我还阅读了和模块的Nginx文档,搜索默认设置为60秒的任何配置
我排除了client.*
超时,因为它们返回http408
而不是http504
响应
这是FastCGI的Nginx服务器配置部分:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
include fastcgi_params;
}
从我目前阅读的内容来看,这似乎不是PHP的问题,而应该归咎于Nginx。尽管如此,我还是尝试修改PHP中的限制:
phpinfo()
中的我的值:
php fpm池配置还启用了以下功能:
catch_workers_output = yes
request_terminate_timeout = 600
php fpm日志中没有任何内容
我也在使用Amazon的负载平衡器路由到服务器,但是超时配置也增加了
我不知道还有什么地方可以看,在所有的更改过程中,我重新启动了php fpm和nginx
谢谢你在这种情况下,我实际上编辑了一个错误的配置文件,但没有被Nginx加载 将以下内容添加到正确的文件完成了此操作:
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_connect_timeout 600;
可能您的php代码中有错误。我们通过修复php代码解决了类似的问题:您最终在哪个文件中进行了这些更改?我相信是
/etc/nginx/sites enabled/your site
包含了配置。只需确保后面定义的includes中没有覆盖即可。
catch_workers_output = yes
request_terminate_timeout = 600
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_connect_timeout 600;