我需要为我的网站使用外部 Web API,他们问我请求来自的 IP 地址是什么。关键是我的 Web 应用程序在更多 Amazon EC2 实例上进行了扩展,因为它是使用配置了自动扩展的 Elastic Beanstalk 部署的。
解决问题的最佳解决方案是什么?
我能想到的最好的事情是设置一个微型实例,将一个弹性 IP 与其关联并将其用作 HTTP 代理。有更好的解决方案吗?
我确定我不是唯一一个遇到这个问题的人,但我在 stackoverflow 上找不到像我这样的另一个问题。许多电子商务网站通常使用外部支付系统,要求请求来自一个或多个特定 IP 地址...
谢谢你。
更新 - 感谢@David,我确实使用 Apache 模块 mod_proxy 设置了 HTTP 代理。如何配置它以便只有我的 EC2 实例可以访问它?我的 EC2 实例是在 Auto Scaling 时动态创建的。
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from ???
</Proxy>
最佳答案
只需使用(转发)代理,Apache2 就可以做到这一点。默认情况下,请求将来自代理的 IP 地址(如果服务正在查看“REMOTE_ADDR”)。一些代理添加“HTTP_X_FORWARD_FOR”来指示请求发起的客户端的真实 IP,但我怀疑您的服务会检查这一点。
关于amazon-ec2 - 外部 API 的静态 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481272/