外部API的静态IP

时间:2012-05-07 11:27:40

标签: amazon-ec2 amazon-web-services elastic-beanstalk

我需要为我的网站使用外部Web API,他们会问我请求来自哪个IP地址。关键是我的Web应用程序在更多Amazon EC2实例上扩展,因为它是使用配置了自动扩展的Elastic Beanstalk部署的。

解决问题的最佳解决方案是什么?

我能想到的最好的事情是设置一个微实例,将弹性IP与其关联并将其用作HTTP代理。有更好的解决方案吗?

我确定我不是唯一一个遇到此问题的人,但我找不到像stackoverflow这样的问题。许多电子商务网站通常使用外部支付系统,要求来自一个或多个特定IP地址的请求......

谢谢。

更新 - 感谢@David,我确实使用Apache模块mod_proxy建立了一个HTTP代理。如何配置它以便只有我的EC2实例可以访问它?我的EC2实例是在自动缩放时动态创建的。

ProxyRequests On                                                                                                                                                                   

<Proxy *>                                                                                                                                                                          
 Order deny,allow                                                                                                                                                                  
 Deny from all                                                                                                                                                                     
 Allow from ???                                                                                                                                               
</Proxy>

3 个答案:

答案 0 :(得分:2)

只需使用(转发)代理,Apache2就可以做到这一点。默认情况下,请求将来自代理的IP地址(如果服务正在查看“REMOTE_ADDR”)。一些代理添加“HTTP_X_FORWARD_FOR”来指示发出请求的客户端的真实IP,但我怀疑您的服务是否会检查此内容。

答案 1 :(得分:1)

设置虚拟私有云(VPC)以将实例IP隔离到/ 24网络,然后使用AWS安全组隔离仅访问您的EC2实例。

答案 2 :(得分:0)

我会使用Nginx作为反向代理而不是Apache,因为Nginx的占用空间较小,并且可以处理更多流量。有关详细信息,请参阅此博客文章: http://readystate4.com/2012/07/08/nginx-the-non-blocking-model-and-why-apache-sucks/