У меня есть микро-экземпляр Amazon EC2 с сервером Window 2008, и я развернул там один образец веб-приложения, которое использует java и развернуто на сервере tomcat 7. Я могу получить к нему доступ локально на экземпляре, но когда я попытался получить доступ к нему за пределами экземпляра AWS, скажем, с моего домашнего компьютера, используя общедоступный DNS AWS / общедоступный IP-адрес / эластичный IP-адрес экземпляра, он дает мне "Веб-страница недоступно".
Я задавал так много похожих вопросов на этом форуме, и я думаю, что выполнил все настройки, которые они просят сделать, но все равно безуспешно.
Вот что я сделал / подтвердил.
1. localhost работает, поэтому приложение прослушивает порт 80.
2. добавлено входящее правило для HTTP на порт 80 для всех в группе безопасности, которую использует мой экземпляр.
3. проверил настройку брандмауэра на экземпляре Windows, убедился, что порт 80 не заблокирован.
4. пробовал даже с выключенным брандмауэром, но безуспешно.
Я был бы очень признателен, если бы кто-нибудь мог мне помочь в этом.
Спасибо, NS
У меня была аналогичная неприятная проблема, когда я установил JetBrains YouTrack на экземпляр Windows Server 2012 ec2. Для меня сработало открытие портов брандмауэра Windows, которые использовала java. конкретно и отключение порта службы World Wide Publishing. Мне также пришлось запустить службу YouTrack под учетной записью LocalSystem вместо учетной записи по умолчанию.
Попробуй это:
Отключите веб-сайт по умолчанию в IIS, если он используется
Запустить netstat -a -b чтобы обнаружить порты, к которым java.exe пытался привязать, например:
TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 ПРОСЛУШИВАНИЕ [java.exe]
TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 УСТАНОВЛЕН [java.exe]
Откройте диспетчер управления службами, щелкните правой кнопкой мыши службу и откройте диалоговое окно свойств. На вкладке "Войти как" выберите Учетная запись локальной системы в качестве учетной записи, под которой работает служба. Важно, чтобы этот пользователь был администратором
Создайте новое правило для Tomcat с TCP-портом 80 и любым другим портом, который может потребоваться.
Сохраните правило и проверьте свой URL извне сервера.
Вы не должны полностью отключать настройки брандмауэра. Это поставит под угрозу безопасность вашего приложения. Вместо этого измените правила входящего брандмауэра Windows Server, чтобы разрешить входящий трафик на определенных портах.
У меня была аналогичная проблема, когда я развернул приложение на Tomcat 8 на сервере Windows 2012, подготовленном через AWS EC2. Я мог получить доступ к развернутому приложению на http: // локальный: 8080 изнутри виртуальной машины, но не из общедоступного Интернета после замены строки localhost в URL-адресе общедоступным IP-адресом виртуальной машины.
Он работал нормально после того, как я изменил правила брандмауэра, чтобы разрешить входящий трафик на порт 80 (для http), порт 443 (для https) и порт 8080 (это порт, на котором мое веб-приложение было развернуто по умолчанию на сервере tomcat.
Я задокументировал настройки брандмауэра и группы безопасности по ссылке ниже:
Для меня две вещи:
Модификация группы безопасности, прикрепленной к моему экземпляру RDS, чтобы разрешать входящий и исходящий трафик
Настройка входящих и исходящих правил в RDS для порта приложения
Подробные шаги:
На верхней панели консоли AWS нажмите Services, выберите EC2.
В левом меню следующего окна под экземплярами щелкните экземпляры, чтобы просмотреть свои экземпляры.
В таблице, содержащей экземпляр, к которому вы хотите получить доступ из общего доступа, прокрутите вправо до столбца с именем «Группы безопасности». Щелкните эту группу безопасности.
Хит Сохранить
Теперь войдите в свой AWS RDS, чтобы настроить правила для входящего и исходящего трафика через брандмауэр.
Запустить панель управления. Нажмите «Система и безопасность» (может быть первым) и нажмите «Брандмауэр Windows». Затем нажмите Дополнительные настройки
Щелкните меню «Правила для входящих подключений» слева.
На вкладке Действия (справа) нажмите Новое правило.
Выберите Порт и нажмите Далее
Выберите TCP (если не выбран) и ниже выберите определенные локальные порты.
В поле введите номер порта вашего приложения и нажмите Далее
Выберите Разрешить подключение и нажмите Далее.
Укажите название правила. Что-то вроде названия вашего приложения для удобства чтения и нажмите "Готово".
Затем давайте настроим исходящий трафик
Вероятно, вы неправильно настроили веб-сервер. Вы можете проверить это, подключившись к серверу через:
telnet $IP 80
если вы не получаете сообщение об ошибке, вы можете подключиться. В этом случае вы неправильно настроили веб-сервер.
Может потребоваться ввести правило для входящего TCP-порта 80 в группе безопасности AWS для вашего экземпляра.
Возможно, вам потребуется сделать порт доступным для прослушивания любых общедоступных вызовов из консоли AWS.
Пожалуйста, пройдите по этой ссылке http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html, Раздел Группы безопасности
Создайте группу безопасности для своего экземпляра EC2, чтобы разрешить соединения на желаемых портах.
Сошлите пожалуйста ссылку .. Будь конкретнее.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
Вы можете разрешить обмен данными между всеми экземплярами, связанными с этой группой безопасности, или между экземплярами, связанными с другой группой безопасности, и экземплярами, связанными с этой группой безопасности. Нажмите «Добавить правило», выберите «Все ICMP» и начните вводить идентификатор группы безопасности в поле «Источник»; это предоставляет вам список групп безопасности. Выберите группу безопасности из списка. Повторите шаги для протоколов TCP и UDP. По завершении нажмите Сохранить.
В основном проблема с брандмауэром Windows. Я попробовал те же шаги, что и вы, но безуспешно. В тот момент, когда я отключил брандмауэр, все было в порядке. Я думаю, что безопасность не должна пострадать, поскольку мы настраиваем правила для входящего и исходящего трафика.
Для экземпляра WINDOWS: щелкните правой кнопкой мыши имя экземпляра EC-2, перейдите к файлу .pem, созданному во время создания экземпляра, и нажмите «Расшифровать пароль». Вы получите имя пользователя и пароль для подключения через Пуск -> Выполнить -> mstsc -> IP-адрес Windows с аутентификацией Windows в качестве администратора и его пароль.
Для экземпляра LINUX -> Загрузите puttygen и нажмите кнопку ЗАГРУЗИТЬ, чтобы выбрать файл .pem, а затем нажмите кнопку СОЗДАТЬ, чтобы сгенерировать файл ppk. Через putty введите IP и в Connections -> SSH -> AUTH -> Browse, чтобы выбрать файл .ppk и сохранить сеансы putty.