Почему tomcat6 не связывается с портом 80?
Я знаю о последствиях запуска tomcat на 80-м порту, но мне нужно быстрое решение. Я пытаюсь следовать этому уроку. Я последовал этому уроку с двумя изменениями:
- Tomcat6 это имя пользователя Tomcat запускается как
- Расположение файла конфигурации tomcat:
/usr/share/tomcat6/bin/catalina.sh
Но я все еще получаю ошибки разрешений. Ява говорит, что не может привязаться к порту 80. Что еще мне делать? Какую другую информацию я должен предоставить людям для отладки? Просто чтобы подтвердить, больше ничего не работает на порту 80
4 ответа
Вы можете изменить свойство AUTOBIND для /etc/default/tomcat6
на "да" следующим образом:
AUTHBIND=yes
Перезапустите ваш tomcat, и это позволит вам использовать доступный привилегированный порт (1-1023).
Есть два разных способа сделать это, не затрагивая конфиг tomcat.
Вы можете создать скрипт iptables, который перенаправляет трафик с порта 80 на порт 8080 (тогда вам не нужно возиться с настройками tomcat)
для iptables
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
сделал бы трюк! (создайте скрипт так, чтобы он выполнялся автоматически при uppstart
или вы можете создать обратный прокси-сервер Apache, который фактически проксирует через него соединения с вашим tomcatserver (это хорошо, поскольку он может фактически кешировать запросы и ускорять соединения для вас)
В коннекторе Tomcat HTTP убедитесь, что ваш коннектор на порту 80 привязан ко ВСЕМ интерфейсам, или 0.0.0.0, а не просто к 127.1 . Это может объяснить, почему вы не можете подключиться с помощью URL- адреса, такого как http://10.0.0.2/, но вы можете с помощью http://127.0.0.1/
Запустите службы tomcat, используя authbind, это позволит пользователю запускать порты менее 1024, нам не нужно перенаправлять или iptables.
apt-get установить authbind -y
Для установки программного обеспечения Authbind
chmod -R 755 /etc/authbind
группа должна быть группой пользователей.
chown -Rh root: группа / etc / authbind
После этого выполните следующие команды
cd /etc/authbind/byuid
В качестве примера, давайте представим, что идентификатор пользователя равен 2000, вы можете использовать свой номер идентификатора пользователя.
echo '0.0.0.0/0:1,1023' > 2000
Этот файл должен принадлежать пользователю и группе.
chown: 2000
CHMOD 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 портами.