Linux в EC2 (Amazon) не может использовать порт 80 для tomcat - программирование
Подтвердить что ты не робот

Linux в EC2 (Amazon) не может использовать порт 80 для tomcat

Во-первых, я просто хочу видеть, что это не настройка группы безопасности в консоли ec2. потому что я могу настроить apache, который по ошибке порт 80, и иметь возможность посетить веб-сайт apache через порт 80. но для tomcat он работает, если я использую порт 8080 (по умолчанию) или некоторые значения больше 1023 (я думаю, этот порт). но когда я меняю server.xml(меняя 8080 на 80), он не может работать, если я использую порт 80, я запускаю службу успешно, но нет 80/http прослушивания. Я знаю, что это должны быть некоторые проблемы с привилегиями (только root может начать обслуживание ниже порта 1023). но я не знал, как это сделать.

4b9b3361

Ответ 1

Мой личный выбор для этой проблемы - использовать iptables для перенаправления всего трафика с порта 80 на верхний порт (например, 8080), который работает Tomcat.

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Ответ 2

То, как я это делал ранее, было использование Apache2 в качестве прокси-сервера с использованием виртуальных хостов и прокси-сервера на Tomcat. это будет обрабатывать запросы, а затем может также использоваться в качестве балансировки нагрузки, если в будущем вы решите использовать несколько Tomcats для балансировки нагрузки.

Ответ 3

Общим способом настройки Tomcat для запуска на привилегированном порту в Linux является использование authbind. Подробные инструкции по настройке для Ubuntu и Amazon Linux здесь.