博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx + php-fpm 执行 PHP 脚本超时 报错 502 Bad Gateway + 504 Gateway Time-out 的解决办法...
阅读量:6758 次
发布时间:2019-06-26

本文共 854 字,大约阅读时间需要 2 分钟。

上周写好的发送邮件的计划任务只发送了一部分,检查计划任务日志,发现 502 Bad Gateway 的错误(已经在脚本中设置了 set_time_limit(0))。

后来在网上查找资料,可以通过以下设置来解决脚本超时导致 502 Bad Gateway 的问题(Nginx + php-fpm,CentOs 系统):

① Nginx 设置

修改 nginx.conf:

fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;

重启 nginx。

 

② php-fpm 设置

修改 php-fpm.conf:

request_terminate_timeout = 0s

重启 php-fpm:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

 

③ 在 php 脚本中设置

ini_set("max_execution_time", 0);

或者在 php.ini 中把 max_execution_time 设为一个比较大的值。

 

502 问题得到解决。

 

然而脚本在执行一段时间之后,又报了 504 Gateway Time-out 的错误,再适当把 nginx.conf 的 fastcgi_connect_timeout、fastcgi_send_timeout、fastcgi_read_timeout 等数值调大:

fastcgi_connect_timeout 3000;fastcgi_send_timeout 3000;fastcgi_read_timeout 3000;

35 分钟发 600+ 邮件(PHPMailer)不报 504 错误。

 

另外最好设置一张数据库表来记录哪些用户的邮件已经发送成功,这样在脚本终止之后重新执行不会重复发送邮件。测试的时候可以用 126 邮箱(同一 QQ 邮箱连续接收 60 封后就不在收件了)。

 

参考:

转载地址:http://wzweo.baihongyu.com/

你可能感兴趣的文章
dede调用img图片
查看>>
Session中放错误提示JSP上获取
查看>>
Folding Views
查看>>
cookie注入&中转注入笔记
查看>>
生产环境linux服务器系统安全配置
查看>>
我的友情链接
查看>>
MySql中 delimiter 详解
查看>>
浏览器history操作实现一些功能
查看>>
你那么喜欢看”干货“,是因为你根本不想下功夫。
查看>>
软件测试用例
查看>>
python mysql 单表查询 多表查询
查看>>
android handler概念解释
查看>>
eclipse代码左虚线对齐设置
查看>>
C中的sizeof
查看>>
插入排序的Java代码实现
查看>>
Spring整合Web开发
查看>>
在SContruct中编译.c
查看>>
让ubuntu开启ssh服务以及让vi/vim正常使用方向键与退格键
查看>>
简易时间序列分析的方法总结(R实现)
查看>>
10.两个链表的交叉
查看>>