2012-05-07 144 views
4

我需要爲我的網站使用外部Web API,他們問我請求將來自哪個IP地址。重點在於我的Web應用程序在更多Amazon EC2實例上擴展,因爲它使用配置了自動擴展的Elastic Beanstalk進行部署。外部API的靜態IP地址

什麼是解決問題的最佳解決方案?

我能想到的最好的辦法是建立一個微實例,彈性IP到其關聯,並用它作爲HTTP代理。有更好的解決方案嗎?

我敢肯定我不是唯一一個有這個問題,但我找不到像我的一個在stackoverflow上的另一個問題。很多電子商務網站通常使用外部支付系統,需要請求來自一個或多個特定的IP地址......

謝謝。

更新 - 感謝@David,我確實使用Apache模塊mod_proxy設置了HTTP代理。我如何配置它以便只有我的EC2實例可以訪問它?自動縮放時,我的EC2實例是動態創建的。

ProxyRequests On                                         

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

回答

2

只要使用(轉發)代理,Apache2就可以做到這一點。默認情況下,請求將來自代理的IP地址(如果服務正在查看「REMOTE_ADDR」)。一些代理添加「HTTP_X_FORWARD_FOR」來表示發起請求的客戶端的真實IP,但是我懷疑你的服務會檢查這個。

+0

謝謝@大衛。似乎要走的路。我如何設置它,以便只有我的EC2實例可以使用它?查看我更新的問題... – satoshi

+0

您應該爲每個問題創建一個新線程,否則會稀釋線程的質量。而這個主題更多地屬於服務器故障。我會刪除您的編輯並鏈接到服務器故障問題。 – David

1

設置虛擬私有云(VPC)將實例IP隔離到/ 24網絡,然後使用AWS安全組將隔離訪問權限隔離到您的EC2實例。