Почему tomcat6 не привязывается к порту 80?

Почему tomcat6 не привязывается к порту 80?

Я знаю о последствиях запуска 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.

Связанный контент