nginx抛出“;504〃;尝试从php运行phantomjs脚本时发生网关错误


nginx throws "504" gateway error when trying to run a phantomjs script from php

我正在尝试运行phantomjs脚本,如下所示:

$max_time = ini_get('max_execution_time');
set_time_limit(0);
$result = shell_exec($path_to_phantomjs);
// Do stuff with result here...
set_time_limit($max_time);

这是一个需要几分钟才能完成的抓取脚本,但我想等待它的结果,并在我的服务器上操作它。对我来说同样重要的是,这个脚本将从客户端运行,并返回一些结果给它进行分析等。

这失败了,nginx出现504错误,需要注意的是,在我的(本地)apache服务器上,同样的代码也能很好地工作。

504错误意味着nginx在从后端(php)获取页面时超时。要解决这个问题,您应该将php代理位置中以下变量的值增加到高于执行脚本时间(以秒为单位)的值:

fastcgi_read_timeout

proxy_read_timeout