Tomcat, работающий на EC2, недоступен вне AWS - PullRequest
0 голосов
/ 23 мая 2018

Нашел множество ответов на этот вопрос, но, похоже, ничего не работает.

У меня есть экземпляр windows EC2, на котором установлен tomcat 8 и работает на порту 8080.У меня развернуто приложение, и я могу получить к нему доступ как localhost:8080/myapp, подключившись к экземпляру и запустив URL-адрес в браузере.

Однако, когда я пытаюсь получить к нему доступ через домашнюю сеть вне aws,Приложение не может подключиться.

Я знаю, что это из-за настроек security group, но я это рассмотрел.Даже после того, как я

Группы безопасности -> Входящие -> Редактировать:

Пользовательское правило TCP: TCP: 8080: Source Anywhere

Проблема по-прежнемуостается.Я даже пытался добавить правило с помощью all traffic, но все равно не повезло.

Кроме того, отметим, что с моим экземпляром связан Elastic IP.Пытался получить доступ с помощью elastic.ip:8080/myapp, но не смог подключиться.

Что еще можно попробовать?Любая конфигурация в tomcat's xml?

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

Я бы проверил, работает ли "wget" или нет.Если да, это означает, что сервер tomcat запущен и работает.

wget <hostname>:8080

Кроме того, на вашем домашнем компьютере может быть установлен брандмауэр, который не позволяет вам получить порт 8080. Можете ли вы подключить telnet ксервер на порту 8080 вашей домашней машины?

Наконец, проверьте также IPtables на сервере: -

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
0 голосов
/ 25 мая 2018

Убедитесь, что tomcat не только слушает 127.0.0.1:8080.Что сделало бы его доступным для localhost, но не для других.Найдите в вашем server.xml адрес разъема и убедитесь, что он установлен на 0.0.0.0 для прослушивания на всех интерфейсах:

# Example
<Connector port="8080" protocol="HTTP/1.1" 
           address="0.0.0.0" />

Вы также можете посмотреть на вывод netstat -an | grep :8080, вы должны увидеть строкукак

tcp        0      0 0.0.0.0:8080              0.0.0.0:*               LISTEN

Если вместо этого вы видите

tcp        0      0 127.0.0.1:8080              0.0.0.0:*               LISTEN

Вы знаете, что он прослушивает только 127.0.0.1, который не будет доступен за пределами вашего локального хоста.

0 голосов
/ 23 мая 2018

Создайте образ экземпляра и запустите новый экземпляр из созданного AMI.

EC2, похоже, испытывает проблемы в течение последних 12 часов, когда открытый интерфейс некоторых экземпляров не принимает трафик, даже если другой экземплярзапускаются с точно такой же Конфигурацией запуска (в моем случае как часть группы автоматического масштабирования) проблем не возникает.

Если у вас есть техническая поддержка премиум-класса, я предлагаю оставить запущенный плохой экземпляр и подать заявку с помощьюидентификатор экземпляра, публичный IP-адрес и т. д.

...