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