«1. Обзор
По умолчанию Apache Tomcat работает на порту 8080. В некоторых случаях этот порт может быть уже занят другим процессом, или в требованиях может быть указано, что мы должны использовать другой порт.
В этой быстрой статье мы покажем, как изменить HTTP-порт сервера Apache Tomcat. В наших примерах мы будем использовать порт 80, хотя процесс одинаков для любого порта.
2. Конфигурация Apache Tomcat
Первым шагом в этом процессе является изменение конфигурации Apache Tomcat.
Сначала мы находим файл \u003cTOMCAT_HOME\u003e/conf/server.xml нашего сервера. Затем находим строку, которая настраивает порт HTTP-коннектора:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
И меняем порт на 80:
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
3. Изменения системы Linux и Unix
В системах Linux и Unix номера портов порты ниже 1024 являются привилегированными портами и зарезервированы для программ, работающих от имени пользователя root. Если мы работаем на порту 1024 или выше, то мы можем пропустить оставшуюся часть этого раздела и перейти непосредственно к запуску/перезапуску нашего сервера, как описано в разделе 4.
Если у нас есть доступ root или sudo, мы можем просто запустить процесс Tomcat от имени пользователя root с помощью команды:
sudo startup.sh
Но если у нас нет доступа root или sudo, нам придется установить и настроить authbind, как описано ниже.
Примечание: при использовании непривилегированного порта (1024 или выше) мы можем пропустить оставшуюся часть этого раздела и сразу перейти к запуску/перезапуску нашего сервера.
3.1. Установите пакет authbind
Для систем на базе Linux: загрузите и установите пакет authbind:
sudo apt-get install authbind
Для систем MacOS: сначала загрузите отсюда authbind для MacOS и разверните пакет. Затем перейдите в расширенный каталог для сборки и установки:
$ cd MacOSX-authbind
$ make
$ sudo make install
3.2. Включить авторизацию на Apache Tomcat
Откройте файл \u003cTOMCAT_HOME\u003e/conf/server.xml и раскомментируйте следующую строку:
AUTHBIND=yes
3.3. Включить чтение и выполнение для порта
Теперь нам нужно выполнить несколько команд, чтобы разрешить чтение и выполнение для порта.
Вот пример использования Tomcat версии 8.x:
sudo touch <AUTHBIND_HOME>/byport/80
sudo chmod 500 <AUTHBIND_HOME>/byport/80
sudo chown tomcat8 <AUTHBIND_HOME>/byport/80
Примечание: если используется Tomcat версии 6 или 7, то мы должны использовать tomcat6 или tomcat7 соответственно в последней команде вместо tomcat8.
3.4. Использование более старых версий authbind
Если используется более старая версия authbind (версия ниже 2.0.0), которая не поддерживает IPv6, нам нужно сделать IPv4 по умолчанию.
Если у нас уже есть файл \u003cTOMCAT_HOME\u003e/bin/setenv.sh, то замените:
exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"
этой строкой:
exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "[email protected]"
и затем добавьте следующую строку:
export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"
~~ ~ Если у нас еще нет файла \u003cTOMCAT_HOME\u003e/bin/setenv.sh, создайте его, используя:
exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "[email protected]"
export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"
4. Перезапустите сервер
Теперь, когда мы внесли все необходимые изменения в нашу конфигурацию, мы может запустить или перезапустить сервер Tomcat и получить к нему доступ через порт 80.
5. Заключение
В этой статье мы показали, как изменить порт Apache Tomcat с 8080 по умолчанию на порт 80. Стоит отметить, что этот процесс то же самое для версий Tomcat 6.x, 7.x и 8.x.