![Почему tomcat6 не привязывается к порту 80?](https://rvso.com/image/959228/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20tomcat6%20%D0%BD%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BA%20%D0%BF%D0%BE%D1%80%D1%82%D1%83%2080%3F.png)
Я знаю о последствиях запуска tomcat на порту 80, но мне нужно быстрое решение. Я пытаюсь следовать этомуруководствоЯ следовал руководству с двумя изменениями:
- tomcat6 — имя пользователя, tomcat запускается как
- Расположение файла конфигурации tomcat:
/usr/share/tomcat6/bin/catalina.sh
Но я все еще получаю ошибки разрешений. Java говорит, что не может привязаться к порту 80. Что еще мне делать? Какую еще информацию мне предоставить людям для отладки? Просто для подтверждения, на порту 80 больше ничего не запущено
решение1
Вы можете изменить свойство AUTOBIND /etc/default/tomcat6
на «да» следующим образом:
AUTHBIND=yes
Перезапустите tomcat, и это позволит вам использовать доступный привилегированный порт (1-1023).
решение2
Есть два способа сделать это, не трогая конфигурацию Tomcat.
Вы можете создать скрипт iptables, который перенаправляет трафик с порта 80 на порт 8080 (тогда вам не придется возиться с настройками tomcat)
для iptables
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
это сработает! (создайте скрипт, чтобы это делалось автоматически при запуске uppstart)
или вы можете создать обратный прокси-сервер Apache, который фактически проксирует соединения с вашим сервером tomcat через него (это хорошо, поскольку он может кэшировать запросы и ускорять соединения для вас)
решение3
В HTTP-коннекторе Tomcat убедитесь, что ваш коннектор на порту 80 привязан ко ВСЕМ интерфейсам или 0.0.0.0 , а не только 127.1 . Это может объяснить, почему вы не можете подключиться с помощью URL, например http://10.0.0.2:80 но вы можете с http://127.1:80
решение4
Запустите службы Tomcat с помощью authbind, это позволит пользователю запускать порты меньше 1024, нам не нужно перенаправление или iptables.
apt-get install authbind -y
Для установки программного обеспечения Authbind
chmod -R 755 /etc/authbind
группа должна быть группой пользователей.
chown -Rh root:group /etc/authbind
После этого выполните следующие команды:
cd /etc/authbind/byuid
В качестве примера представим, что идентификатор пользователя равен 2000. Вы можете использовать свой номер идентификатора пользователя.
эхо '0.0.0.0/0:1,1023' > 2000
Этот файл должен принадлежать пользователю и группе.
Чаун: 2000
чмод 700 2000
Добавьте следующую строку в файл запуска tomcat $CATALINA_BASE/startup.sh
export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
Для запуска tomcat с использованием сервиса Authbind startup.sh
Прокомментируйте строку ниже
#$CATALINA_HOME/bin/startup.sh
Добавить этот конец в конец файла
AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c "
$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh
Теперь вы сможете запускать службы tomcat как пользователь с портами менее 1024.