Установка должна производится на чистый сервер, без панели ISPmanager. Для установки хорошо подойдёт шаблон Debian 10.
Перед установкой самого Tomcat необходимо создать пользователя для его работы, а также установить Java.
Создаём пользователя:
useradd tomcat -U -s /bin/false -d /opt/tomcat -m
Устанавливаем Java — для этого воспользуйтесь готовой инструкцией.
Перед установкой Tomcat нужно определиться с его версией. На официальной странице Apache Tomcat, слева есть список версий: выбираем нужную, например Tomcat 10, далее копируем ссылку на загрузку архива tar.gz.

Скачиваем архив:
wget https://apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-10/v10.0.2/bin/apache-tomcat-10.0.2.tar.gz
Распаковываем архив в ранее созданный каталог пользователя tomcat:
tar zxvf apache-tomcat-*.tar.gz -C /opt/tomcat --strip-components 1
И меняем права на файлы для пользователя tomcat:
chown -R tomcat:tomcat /opt/tomcat
Так как сейчас запуск Tomcat осуществляется в ручном режиме, то после перезапуска сервера он не запустится, это нужно исправить. Для этого настроим служебный файл systemd, который будет запускать Tomcat и, если он упадёт, перезапускать.
Ubuntu/Debian
Первым делом выполняем команду update-java-alternatives -l
Вывод будет примерно таким, значения версий могут отличаться:
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
Создаём файл /etc/systemd/system/tomcat.service
и добавляем в него следующее:
[Unit]
Description=Apache Tomcat Server
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Меняем значение JAVA_HOME
на /usr/lib/jvm/java-1.11.0-openjdk-amd64
(может отличаться в зависимости от версии JAVA)
Centos
Создаём файл /etc/systemd/system/tomcat.service
и добавляем в него следующее:
[Unit] Description=Apache Tomcat Server After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment=CATALINA_PID=/opt/tomcat/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Далее для применения настроек перезагружаем демона:
systemctl daemon-reload
Запускаем Tomcat:
systemctl start tomcat
Переходим в браузер по ссылке IP_сервера:8080
Настройка доступа к веб-интерфейсу
Tomcat имеет веб-интерфейс управления, но доступ к нему ещё нужно настроить, чем мы сейчас и займёмся.
Создаём пользователя, редактируя файл /opt/tomcat/conf/tomcat-users.xml
, добавляем следующие строки в раздел tomcat-users:
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="ИМЯ_ПОЛЬЗОВАТЕЛЯ" password="ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ" roles="admin-gui,manager-gui"/>
Далее необходимо разрешить определённому IP заходить в веб-интерфейс управления. Для этого нужно внести изменения в файл /opt/tomcat/webapps/manager/META-INF/context.xml
.
Находим строку
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Добавляем через прямую черту “|” новый IP, например:
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|127.0.0.1" />
То же самое делаем и с файлом /opt/tomcat/webapps/host-manager/META-INF/context.xml
.
После всех настроек перезапускаем Tomcat.
systemctl restart tomcat
Далее кликаем на один из трёх пунктов управления на сайте, чтобы авторизоваться:

Вас попросят ввести логин и пароль для авторизации, указываем ранее созданные данные в файле /opt/tomcat/conf/tomcat-users.xml
Смена порта
По умолчанию Tomcat работает на 8080 порту, при необходимости его можно сменить в файле /opt/tomcat/conf/server.xml
, найдя строку <Connector port="8080" protocol="HTTP/1.1"
. Меняем 8080 на нужный порт и перезапускаем Tomcat.
Установка сертификата
Размещаем ключ, сертификат и цепочку на сервере.
Или же генерируем файлы сертификата через Openssl по статье.
Далее нужно совместить сертификат и цепочку, командой:
cat файл_сертификата файл_цепочки > cert.pem
Ключ в формат .pem:
mv файл_ключа key.pem
Генерируем файл .p12
openssl pkcs12 -export -out /tmp/cert_and_key.p12 -in cert.pem -inkey key.pem -name tomcat
Будет запрошен пароль, указываем любой, запоминаем.
Генерируем сертификат для Tomcat:
keytool -importkeystore -deststorepass 'ПАРОЛЬ_МИН_6_ЗНАКОВ' -destkeypass 'ПАРОЛЬ_МИН_6_ЗНАКОВ' -destkeystore /tmp/domain.jks -srckeystore /tmp/cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass 'ПАРОЛЬ_ИЗ_ПРЕДЫДУЩЕГО_ШАГА' -alias tomcat
Перемещаем готовый файл:
mv /tmp/domain.jks /opt/tomcat/conf/domain.jks
В файле /opt/tomcat/conf/server.xml
находим блок:
<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" ... </Connector> -->
Убираем <!--
и -->
по краям блока, чтобы раскомментировать его и приводим к виду:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/domain.jks" certificateKeystorePassword="ПАРОЛЬ_МИН_6_ЗНАКОВ" type="RSA" /> </SSLHostConfig> </Connector>
В certificateKeystoreFile
указываем файл conf/domain.jks
, это ранее созданный сертификат, который мы переместили.
В certificateKeystorePassword
указываем пароль, от сертификата.
Перезапускаем Tomcat:
systemctl restart tomcat