HTTP_Request 调用在浏览器中有效,在网络应用程序中超时

HTTP_Request call works in browser, timeout in web app

我有一个 Web 应用程序,它通过 JSON 格式的 REST API 从自身获取数据。我正在将此站点移动到新主机上的新服务器。我已经移动了所有东西,相同的数据库,相同的文件。主要区别在于 PHP 是 运行 在新服务器上作为模块而不是 FastCGI 并且新主机具有客户端可配置防火墙。

Web 应用程序使用 Pear 的 HTTP_Request 对象(GET 方法)进行 API 调用。当我 运行 进行调用的网络应用程序时,它一直旋转直到最终 returns 出现 "Connection timed out" 错误。

但是,如果我回显调用正在使用的 URL 然后直接在我的浏览器中点击它 returns 所有 JSON 数据立即。

我想知道这是否可能是防火墙问题:Pear 的 HTTP_Request 对象的内核使用的端口或协议被阻止? (当前有一个防火墙策略允许来自任何 IP 的端口 80 上的流量)。

或者权限问题:PHP 运行ning作为一个模块对此比较敏感。

如有任何想法,我们将不胜感激!

由于新服务器仍仅使用 IP 地址进行测试,因此内部 Web 应用程序试图通过外部 IP 访问自身。从服务器本身,外部 IP 不可用。必须改为指向内网IP进行测试

移动域名后,这将不再是问题。