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.