«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.