Ras*_*boy 2 php curl nginx file-get-contents
这个问题最好用我认为的代码来解释.从web目录:
vi get.php
Run Code Online (Sandbox Code Playgroud)
将此php添加到get.php
<?
echo file_get_contents("http://IPOFTHESERVER/");
?>
Run Code Online (Sandbox Code Playgroud)
IPOFTHESERVER是运行nginx和PHP的服务器的IP.
php get.php
Run Code Online (Sandbox Code Playgroud)
返回在该IP BUT上托管的(默认)网站的内容
..返回504网关超时.卷曲也一样.使用PHP exec命令和GET是一样的.但是,从命令行直接它一切正常.
我在2个nginx服务器上复制了它.由于某种原因,nginx不允许我通过PHP与其运行的服务器建立HTTP连接(除非是通过命令行).
有人有任何想法吗?
谢谢!
小智 7
检查你没有在PHP方面遇到工作人员耗尽,这是我的实验室服务器设置中配置为节省RAM的问题.
基本上我忘了您使用单个工作程序处理主页面已经显示给最终用户,然后get_file_contents()函数基本上生成一个单独的HTTP请求到同一个Web服务器,实际上需要2个工作人员进行单个页面加载.
由于第一个页面使用的是最后一个worker,因此get_file_contents函数无法使用,因此Nginx最终在第一页上回复了504,因为反向代理请求没有回复.