本地开发环境中使用 PHP Nginx 时,出现了 504 超时问题,需要解决。
环境信息:thinkphp 6、PHP 7.3、Nginx 1.15。
原因分析
立即学习“PHP免费学习笔记(深入)”;
仔细观察发现,问题出现在 Nginx 的请求超时和加载超时上。
进一步分析后发现,问题出在后端导出 excel 的过程中。Excel 某列中有图片,这些图片需要通过 cURL 下载到本地。当导出日期范围较大(2 年/2800 条记录)时,由于图片下载时间较长,导致 Nginx 超时。
解决方案
放大 Nginx 配置中的 fastcgi_read_timeout 参数,将其值设为 180。
fastcgi_read_timeout 参数控制 Nginx 从 PHP-FPM 进程读取请求的超时时间。将此值设置为 180 表示 Nginx 将等待 180 秒才能超时,从而为图片下载留出更充裕的时间。
修改 Nginx 配置后,重新启动 Nginx 服务,问题即可解决。