为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx + Php-fpm fastcgi 上游超时

Nginx + Php-fpm fastcgi 上游超时

PHP
繁星点点滴滴 2022-07-22 10:08:42
我遇到了长时间运行的 PHP 脚本的问题:<?phpsleep(70); # extend 60sphpinfo();每次 60 秒后都会收到504 Gateway Time-out来自 Nginx 的响应而终止。当我检查 Nginx 错误时,我可以看到请求超时:... [error] 1312#1312: *2023 upstream timed out (110: Connection timed out) while reading response header from upstream, ... , upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock", ...我浏览了相关问题并尝试增加超时创建/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;我还阅读了有关fastcgi和核心模块的 Nginx 文档,搜索默认设置为 60 秒的任何配置。我排除了client_*超时,因为它们返回HTTP 408而不是HTTP 504响应。这是我的 FastCGI 的 Nginx 服务器配置部分:location ~ \.php$ {    fastcgi_pass unix:/run/php/php7.0-fpm.sock;    include fastcgi_params;}从我目前阅读的内容来看,这似乎不是 PHP 的问题,而 Nginx 应该归咎于超时。尽管如此,我也尝试修改 PHP 中的限制:我的价值观来自phpinfo():default_socket_timeout=600max_execution_time=300max_input_time=-1memory_limit=512Mphp-fpm 池配置还启用了以下功能:catch_workers_output = yesrequest_terminate_timeout = 600php-fpm 日志中没有任何内容。我也是使用亚马逊的负载均衡器来路由到服务器,但是超时配置也从默认的 60 秒增加了。我不知道还能去哪里看,在所有更改期间我都重新启动了 php-fpm 和 nginx。
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

正如在这些情况下发生的那样,我实际上正在编辑一个错误的配置文件,该文件没有被 Nginx 加载。


将以下内容添加到正确的文件中就可以了:


fastcgi_read_timeout 600;

fastcgi_send_timeout 600;

fastcgi_connect_timeout 600;


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信