繁体   English   中英

如何使用弹性IP而非私有IP在Amazon EC2 Linux盒子上制作Apache?

[英]How can I make Apache on an amazon ec2 linux box using the elastic IP instead of the private IP?

我已经将网站迁移到Amazon ec2,该网站与我们正在使用的服务挂钩,该服务安装在另一台服务器(而不是Amazon)上。 对该服务的API的访问受到IP限制,并且可以使用PHP中的* http_build_query *和* stream_context_create *发送XML数据来完成。

如果要从新服务器连接到服务,则需要先要求供应商添加新IP。 我通过向他们发送弹性IP来做到这一点,但这是行不通的。 在尝试调试时,我注意到$ _SERVER ['SERVER_ADDR']的输出是ec2实例的专用IP。 我假设另一端的服务器正在接收相同的数据,因此它尝试对专用IP进行身份验证。 我已经要求供应商也允许从私有IP进行访问-尚未实现,因此我不确定是否可以解决问题,但是据我了解其API的工作方式,它将尝试将数据解析回与之联系的IP,这是不可能的,因为服务器位于Amazon云外部。

我可能会错过这里真正明显的东西。 我在rc.local中添加了一个命令(在ec2实例上运行CENT OS),该命令在启动时通过使用ec2-associate-address将弹性IP与服务器相关联 ,这似乎有助于使与其他外部服务器的MySQL连接正常工作,但使用上述API并没有好运。

排除一件事-通过HTTPS访问API,并在安全组中启用端口80和443(以及mysql端口)并进行测试。 域和SSL运行正常。

非常感谢任何提示-我已经进行了很多搜索,但到目前为止找不到任何有用的信息。

听起来您的VM中两个IP(私有和弹性)都处于活动状态。 通过运行ifconfig -a检查。 如果发生这种情况,那么用于外部流量的IP将取决于远程地址和VM的路由表。 从一个连接到另一个连接,它甚至可能有所不同。

如果那是发生了什么,那么最快的解决方法是将ifconfig down具有私有地址的接口。 那应该只为所有外部连接保留弹性地址。 如果这样可以解决问题,那么您可以编写脚本,以使弹性IP处于活动状态后自动关闭私有IP,或者将弹性IP永久分配给该VM,而您确实不需要私有IP,则可以从此VM永久取消私有IP的关联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM