2015-04-02 7 views
1

Если это имеет значение, это в AWS China.Невозможно подключиться к экземпляру EC2 через HTTP извне AWS

У меня есть новый экземпляр EC2. Я создал его пару дней назад. Он должен быть сервером приложений для приложения rails. Apache работает и работает (работает curl localhost). Когда я пытаюсь использовать другой экземпляр EC2, он также отвечает ОК (используя внутренний IP-адрес EC2).

Однако, если я использую внешний IP-адрес, он не работает. Это время.

Вещи, которые я проверил:

  • Apache работает, и он слушает на eth0, а также локального хоста.
  • В экземпляре нет брандмауэра (по умолчанию образ Amazon Linux, iptables -L возвращает все политики ACCEPT, никаких других правил).
  • Группа безопасности верна. Он имеет правила для входящего порта 80, а порт 443 - для всего мира.
  • Группа безопасности, которую я изменяю, действительно применяется к экземпляру с проблемами. Я попытался удалить SSH-доступ из этой группы безопасности, и мое ssh-соединение на сервере умерло. Добавлен доступ снова, и я смог войти в ssh. Таким образом, группа безопасности работает и применяет правила.
  • Я даже попытался настроить балансировку нагрузки перед экземпляром. Балансировщик нагрузки также не может достичь экземпляра.
  • Да, я использую правильный IP-адрес. Я проверил его снова и снова.
  • Я попытался использовать общедоступное имя хоста, он по-прежнему не работает (зачем это нужно?), Но он подтверждает, что у меня есть правильный IP-адрес, потому что он работает изнутри экземпляра (поскольку внутри AWS он указывает на внутренний IP-адрес адрес).

Я полностью в тупике. Возможно, это действительно глупая ошибка с моей стороны, но я уже пробовал все, что мог придумать. Я googled и попробовал все, что говорили другие люди, работавшие на них. У меня был сотрудник, и он не мог заставить его работать.

Итак, любые идеи? Что мне не хватает?

Спасибо!

Редактировать: коллега предложил что-то, что имело общий смысл: что, если я слушаю в другом порту? Так ли это работает? Оказывается, это так. Настроенный Apache для прослушивания в порту 9876, открыл его в группе безопасности, и, конечно же, он работает. Так что это только порт 80, который фильтруется. Следующим шагом был создание балансира нагрузки, который прослушивает порт 80 и пересылает в порт 9876 экземпляр. И, конечно, это не сработает. LB подключается к экземпляру, говорит, что он подключен к сети, но я не могу добраться до LB в порту 80. Поэтому кажется, что я ничего не могу достичь в AWS China на порту 80, и я все еще полностью заблокирован здесь.

+0

откуда вы пытаетесь использовать внешний IP? – pherris

+0

Из моего собственного дома, в основном, и из моего офиса. Из обоих мест я могу использовать SSH, но я получаю HTTP-тайм-аут. Кроме того, если я использую внешний IP-адрес из самого экземпляра, он также отключается. То же самое из другого экземпляра AWS China EC2, тайм-аут при использовании внешнего IP, работает при использовании внутреннего. – Nacho

+0

Похоже, вы все это рассмотрели, но хотели передать вам этот другой вопрос/ответы SO в случае: http://stackoverflow.com/questions/10253484/cant-access-site-on-ec2-instance-via -public-ip – pherris

ответ

3

В конце концов я получил ответ от другого носителя, но я думал, что поделюсь им здесь, если кто-то другой с тем же вопросом бродит по этому вопросу.

Владелец сервера нуждался в ICP, который у них был, но не прошел аутентификацию с AWS China. ICP - это своего рода документ, в котором китайское правительство разрешает бизнесу управлять веб-сайтом.

Дополнительная информация: https://www.amazonaws.cn/en/about-aws/china/faqs/#do-i-need-icp-recordal

Смежные вопросы