nginx - PHP 经常提示 504 Gateway Time-out
问题
win7 安装的 nginx1.6.2
官网版 + wamp的PHP库,然后程序里面有PHP 使用curl去采集一个远程程序,但是总是会出现 504 Gateway Time-out
提示!使用的是wamp里面的PHP,无php-fpm,如何修改 max_children
参数?
启动代码
@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole D:/wamp/bin/php/php5.5.12/php-cgi.exe -b 127.0.0.1:9000 -c D:/wamp/bin/apache/apache2.4.9/bin/php.ini
echo Starting nginx...
RunHiddenConsole D:/nginx/nginx.exe -p D:/nginx
回复内容:
问题
win7 安装的 nginx1.6.2
官网版 + wamp的PHP库,然后程序里面有PHP 使用curl去采集一个远程程序,但是总是会出现 504 Gateway Time-out
提示!使用的是wamp里面的PHP,无php-fpm,如何修改 max_children
参数?
启动代码
@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole D:/wamp/bin/php/php5.5.12/php-cgi.exe -b 127.0.0.1:9000 -c D:/wamp/bin/apache/apache2.4.9/bin/php.ini
echo Starting nginx...
RunHiddenConsole D:/nginx/nginx.exe -p D:/nginx
set_time_limit(0);
504是web服务报的,一般是程序执行超时。
你是怎么解决的啊,我这边也出现了这种问题。
504通常是应用程序处理时间超时造成的,跟nginx没多大关系
通常以下几种情况会导致这个问题:
1.程序在处理大量的数据,或者有死循环之类的问题
2.创建数据库之类的连接因为某些原因连接不上,然后没有超时失败的机制,导致一直在创建连接
3.程序中有一些http请求,这些请求执行时间过长,导致超时
如果不能直接定位到问题,debug也很容易,在代码中任意位置插入exit,如果还超时说明造成超时的在这后面,往后移exit;如果不超时则在前面,往前移,直到找到问题
在curl请求是时候设置超时时间,当然这只是一个建议,手段如果采集内容过多建议不要在PHP端一次性做完,放到一个列表里尽量短时完成用前端刷新的方法去分步处理,这样会好一点,我之前就是这么处理的
修改Nginx配置:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
设置php脚本
set_time_limit(0);
ignore_user_abort();
推荐阅读
-
Nginx 502 bad gateway和Nginx 504 Gateway Time-out错误解决方法 错误解决办法
-
一次nginx 504 Gateway Time-out错误排查、解决记录
-
nginx 504 Gateway Time-out错误解决方法
-
完美解決Nginx 504 Gateway time-out问题
-
Nginx PHP-Fcgi中因PHP执行时间导致504 Gateway Timeout错误解决记录
-
Nginx 502 bad gateway和Nginx 504 Gateway Time-out错误解决方法 错误解决办法
-
解决nginx“504 Gateway Time-out”错误
-
nginx - PHP 经常提示 504 Gateway Time-out
-
nginx - PHP 经常提示 504 Gateway Time-out
-
记一次 nginx 504 Gateway Time-out 504 time out nginx 504 gateway 504 gateway