2012-05-07 10 views
4

Мне нужно использовать внешний веб-API для моего веб-сайта, и они спрашивают меня, каким будет IP-адрес, откуда будут поступать запросы. Дело в том, что мое веб-приложение масштабируется на нескольких экземплярах Amazon EC2, потому что оно развернуто с использованием Elastic Beanstalk с автоматическим масштабированием.Статический IP для внешнего API

Какое будет наилучшее решение для решения проблемы?

Лучшее, что я могу придумать, - создать микро-экземпляр, связать с ним Elastic IP и использовать его в качестве прокси-сервера HTTP. Есть ли лучшее решение?

Я уверен, что я не единственный, у кого есть эта проблема, но я не мог найти другой вопрос, как мой, в stackoverflow. Многие веб-сайты электронной коммерции обычно используют внешнюю платежную систему, которая требует, чтобы запросы поступали с одного или нескольких конкретных IP-адресов ...

Спасибо.

Обновление - благодаря @David, я настроил HTTP-прокси, используя модуль Apache mod_proxy. Как настроить его так, чтобы к нему могли обращаться только мои экземпляры 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.

0

Я бы использовал Nginx в качестве обратного прокси вместо Apache, потому что Nginx имеет меньший размер и имеет значение, поэтому может обрабатывать больше трафика. См. Это сообщение в блоге для получения более подробной информации: http://readystate4.com/2012/07/08/nginx-the-non-blocking-model-and-why-apache-sucks/