PHP前端开发

PHP+Nginx导出Excel超时怎么办?

百变鹏仔 3天前 #PHP
文章标签 PHP

解决 PHP Nginx 出现 504 超时

本地开发环境中使用 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 服务,问题即可解决。