纪录一次nginx+php 502 Bad Gateway 错误解决方案

By | 2020年5月18日

本人为了将一个影视站影视表内的5万条数据远程图片下载至本地,用php写了一个轮询下载的方法。方法写好后还小激动了一会,从没下载过这么多的图片;结果好景不长,在轮询了几百条数据的时候就出现了502 Bad Gateway错误,检查了游一下进程发现,php已经停止运行了;在这之后就总是出现这种情况,于是乎就开始百度,谷歌搜索。

网上搜索的很多方法对于我遇到的问题没有任何用处,我是在本地windows10系统上搭建的nginx+php+mysql环境的;网上所说的配置nginx.conf(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300;),我按照此方法试了好几遍,还是出现502错误。

然后又在网上搜索到方法是配置php.ini文件,和上面的方法原理一样,无非就是调高单页面的相应时间等,同样没有用。

就这样查资料及网上搜索一直试了五六个小时,实在没有头绪了;最后想到既然是php停止运行,那我就试一下多开几个php线程,这样执行效率会不会高一点;试了一下果然效果不错,一次性轮询下载了五六千张图片也没问题。

实现方法:

REM 手动启动php,开多线程服务
set PHP_FCGI_CHILDREN=15
set PHP_FCGI_MAX_REQUESTS=1000
set php_home=D:\nginx\php\php-7.4.4
echo Starting PHP FastCGI...
RunHiddenConsole %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini

发表评论

电子邮件地址不会被公开。 必填项已用*标注