【问题标题】:HTTP_Request call works in browser, timeout in web appHTTP_Request 调用在浏览器中有效,在 Web 应用程序中超时
【发布时间】:2015-01-17 00:17:24
【问题描述】:

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

Web 应用程序使用 Pear 的 HTTP_Request 对象(GET 方法)进行 API 调用。当我运行进行调用的网络应用程序时,它会旋转,直到最终返回“连接超时”错误。

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

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

或者是权限问题:作为模块运行的 PHP 对此更敏感。

任何想法将不胜感激!

【问题讨论】:

  • 你能在那个服务器上通过 curl 获取 URL 吗?

标签: php rest pear http-request


【解决方案1】:

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

一旦域名被移动,这将再次成为非问题。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2012-04-28
    • 2020-04-26
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多