Порт 80 недоступен Amazon ec2
Я запустил экземпляр Amazon EC2 (Linux Redhat)... А также Apache.
Но когда я пытаюсь:
http://MyPublicHostName
Я не получил ответа.
Я гарантировал, что моя группа безопасности разрешает доступ к порту 80.
Я могу достигнуть порта 22 наверняка, так как я вошел в экземпляр через ssh.
Внутри Amazon EC2 Linux Instance, когда я делаю:
$ wget http://localhost
я получаю ответ. Это подтверждает, что Apache и порт 80 действительно работают нормально.
Так как Amazon запускает экземпляры в VPC, я должен что-то там делать... Фактически я не могу даже пропинговать экземпляр, хотя я могу ssh к нему!
Любой совет?
РЕДАКТИРОВАТЬ:
Обратите внимание, что ранее я редактировал файл /etc/hosts, чтобы сделать установку 389-ds (ldap).
Мой файл /etc/hosts выглядит следующим образом (IP-адреса показаны как wxyz)
127.0.0.1 localhost.localdomain localhost
wxyz ip-wxyz.us-west-1.compute.internal
wxyz ip-wxyz.localdomain
4 ответа
По умолчанию брандмауэр RedHat блокирует некоторые порты, включая порт 80. Это в дополнение к брандмауэру, настроенному на Amazon AWS через группу безопасности.
Вы можете настроить брандмауэр, чтобы разрешить ваш трафик HTTP.
$ sudo system-config-firewall-tui
Другой вариант - отключить внутренний брандмауэр. Тем не менее, убедитесь, что вы знаете, что делаете.
Проверьте, если ваш iptables
есть какое-либо правило включено или нет.
iptables -L
Если на сервере есть какие-то правила, вы можете их сбросить.
iptables -F
Если вы ранее не касались настроек группы безопасности, они закрываются.
- Для начала необходимо выяснить, к какой группе безопасности относится ваш сервер.
- В списке экземпляров нажмите на сервер, затем вы увидите описание экземпляра ниже
- В правом столбце есть название группы безопасности. По ссылке Просмотр правил вы видите, какие порты открыты. По умолчанию только 22. Если нет 80 порта, вам нужно добавить его.
- Далее нужно добавить правило на 80 портов. Откройте Группы безопасности в левом меню и щелкните свою группу безопасности.
- Ниже вы видите Подробности о группе.
- Нажмите вкладку Inbound и выберите HTTP из меню (или добавьте пользовательский порт). Оставьте исходный код как 0.0.0.0/0, если вам нужен публичный доступ.
- Нажмите Добавить правило. NB! Вам также нужно нажать Применить изменения правил, хотя правило появилось в списке уже после первого щелчка. Изменения, ожидающие применения, отмечены звездочкой в заголовке вкладки.
- Нет необходимости добавлять исходящие, так как это открывается по умолчанию (вы можете проверить, есть ли правило ALL 0.0.0.0/0)
Вот и все.
Есть несколько вещей, которые вы можете сделать для устранения неполадок.
1) Поскольку вы не можете указать базовые домены для CNAME, вам нужно указать www.mypublichostname.com на ec2-wxyz.us-west1.blah. В качестве альтернативы (и, возможно, лучшей идеей) является присоединение эластичного IP-адреса к машине и указание записи A и всех других записей на IP-адрес.
2) Вы упоминаете, что запускаете этот экземпляр в VPC. С группами безопасности VPC вы должны определить как входящие, так и исходящие разрешения безопасности. Необходимо убедиться, что порты 80 и 8080 открыты как входящие, так и исходящие для 0.0.0.0/0 (все) или для вашего конкретного IP-адреса, подсети и т. Д.
3) Маршрутизация VPC может быть немного более сложной в зависимости от того, как вы ее обрабатываете. Если вы используете блок перехода или прокси-сервер для повышенной безопасности, вы должны настроить его в качестве шлюза для исходящего трафика. Назначение эластичного IP для этого экземпляра облегчает эту проблему.
Надеюсь это поможет.