【发布时间】:2012-04-25 14:12:37
【问题描述】:
我已将一个网站迁移到 Amazon ec2,该网站挂钩到我们正在使用的服务,该服务安装在另一台服务器(不是在 Amazon)上。对该服务的 API 的访问受 IP 限制,并通过使用 PHP 中的 *http_build_query* 和 *stream_context_create* 发送 XML 数据来完成。
如果我想从新服务器连接到服务,我需要先要求供应商添加新 IP。我通过向他们发送弹性 IP 来做到这一点,但它不起作用。 在尝试调试时,我注意到 $_SERVER['SERVER_ADDR'] 的输出是 ec2 实例的私有 IP。 我假设另一端的服务器正在接收相同的数据,因此它尝试对私有 IP 进行身份验证。 我已经要求供应商也允许从私有 IP 进行访问——它还没有实现,所以我不确定这是否能解决问题,但据我了解他们的 API 的工作方式,它会尝试将数据解析回与之联系的 IP,这应该是不可能的,因为服务器位于亚马逊云之外。
我可能会错过一些非常明显的东西。我向 rc.local(在我的 ec2 实例上运行 CENT OS)添加了一个命令,该命令在启动时使用 ec2-associate-address 将弹性 IP 与服务器相关联,并且这似乎有助于建立与另一个外部服务器的 MySQL 连接,但上述 API 没有运气。
排除一件事 - API 是通过 HTTPS 访问的,在安全组中启用了端口 80 和 443(以及一个 mysql 端口)并进行了测试。域和 SSL 运行良好。
任何提示都非常感谢 - 我已经搜索了很多,但到目前为止找不到任何有用的东西。
【问题讨论】:
标签: api amazon-ec2 centos