Перейти к основному содержимому

Изменение HTTP-порта Tomcat на 80

· 3 мин. чтения

1. Обзор

По умолчанию Apache Tomcat работает на порту 8080 . В некоторых случаях этот порт может быть уже занят другим процессом, или в требованиях может быть указано, что мы должны использовать другой порт.

В этой быстрой статье мы собираемся показать, как изменить HTTP-порт сервера Apache Tomcat. В наших примерах мы будем использовать порт 80 , хотя процесс одинаков для любого порта.

2. Конфигурация Apache Tomcat

Первым шагом в этом процессе является изменение конфигурации Apache Tomcat.

Сначала мы находим файл <TOMCAT_HOME>/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. Включить authbind на Apache Tomcat

Откройте файл <TOMCAT_HOME>/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 по умолчанию.

Если у нас уже есть файл <TOMCAT_HOME>/bin/setenv.sh , то заменяем:

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

с этой строкой:

exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"

а затем добавьте следующую строку:

export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

Если у нас еще нет файла <TOMCAT_HOME>/bin/setenv.sh , создайте его, используя:

exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

4. Перезапустите сервер

Теперь, когда мы внесли все необходимые изменения в нашу конфигурацию, мы можем запустить или перезапустить сервер Tomcat и получить к нему доступ через порт 80 .

5. Вывод

В этой статье мы показали, как изменить порт Apache Tomcat с 8080 по умолчанию на порт 80 . Стоит отметить, что этот процесс одинаков для версий Tomcat 6.x , 7.x и 8.x.