Apache Tomcat - установка и настройка на Debian

Apache Tomcat – это сервер приложений, который используется для обслуживания приложений Java. Tomcat – это открытая реализация технологий Java Servlet и JavaServer Pages.

1: Установка Java

Для работы Tomcat необходимо установить Java, иначе код Java не будет выполняться. Установите OpenJDK при помощи стандартного пакетного менеджера apt. Сначала нужно обновить индекс пакетов.

sudo apt update

Чтобы установить JDK (Java Development Kit), введите:

sudo apt install default-jdk wget curl

После установки Java создайте специального пользователя tomcat для запуска сервиса Tomcat.

2: Создание пользователя Tomcat

В целях безопасности сервер Tomcat следует запускать с правами обычного пользователя.

Создаем группу и пользователя tomcat

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

3: Установка Tomcat

Tomcat 9 проще всего установить вручную из бинарного релиза.

На сайте проекта найдите последнюю версию Tomcat. В нашем случае - 9.0.30

cd /opt
sudo wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.30/src/apache-tomcat-9.0.30-src.tar.gz
sudo tar xvf apache-tomcat-9.0.30-src.tar.gz
sudo ln -s apache-tomcat-9.0.30 tomcat

4: Настройка доступа

Пользователь tomcat должен иметь доступ к каталогу /opt/tomcat.

Передайте пользователю tomcat права на каталог:

sudo chgrp -R tomcat /opt/tomcat
sudo chown -R tomcat webapps/ work/ temp/ logs/
sudo chmod -R g+r conf
sudo chmod g+x conf

5: Создание сервиса systemd

Чтобы запустить Tomcat как сервис, нужно создать service-файл systemd.

Надо определить переменную JAVA_HOME. Чтобы узнать, где расположена java:

sudo update-java-alternatives -l
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

В данном случае JAVA_HOME будет выглядеть так:

echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-amd64

Создаем файл службы tomcat.

cat << EOF > /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
EOF

Перезапускаем демона systemd:

sudo systemctl daemon-reload
Разрешаем автозапуск и стартуем tomcat:
sudo systemctl enable tomcat
sudo systemctl start tomcat
Смотрим статус:
sudo systemctl status tomcat

6: Настройка брандмауэра и тестирование сервера

После запуска сервиса Tomcat нужно убедиться, что стандартная страница доступна в браузере.
Для обработки запросов Tomcat использует порт 8080. Чтобы разблокировать трафик этого порта, введите:

sudo ufw allow 8080
Или, если используете iptables:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
Чтобы проверить доступ к сервису, наберите адрес в браузере:
http://server_IP:8080
На экране появится приветственная страница Tomcat, которая содержит некоторую информацию о программе.

7: Настройка веб-интерфейса Tomcat

Чтобы использовать поставляемый с Tomcat интерфейс, добавьте учетные данные на сервер Tomcat.

sudo vi /opt/tomcat/conf/tomcat-users.xml
Добавим пользователя, который будет иметь доступ к интерфейсам: manager-gui и admin-gui.
<tomcat-users . . .>
<user username="admin" password="strong_pass" roles="manager-gui,admin-gui"/>
</tomcat-users>

По умолчанию Tomcat ограничивает доступ к приложениям по IP-адресам. Изменить это можно в файлах context.xml.

/opt/tomcat/webapps/manager/META-INF/context.xml
/opt/tomcat/webapps/host-manager/META-INF/context.xml

Можно закомментивать ограничения IP-адресов, или вписать свои IP.

<Context antiResourceLocking="false" privileged="true" >
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

Теперь надо перезапустить сервер.

sudo systemctl restart tomcat

8: Доступ к веб-интерфейсу

Теперь сервер Tomcat запущен. Откройте в браузере веб-интерфейс.

http://server_IP:8080
На экране появится страница с сообщением:
If you’re seeing this, you’ve successfully installed Tomcat. Congratulations!
Также на этой странице есть ссылки на веб-приложения админа, для которых ранее была создана учётная запись администратора.

Теперь откройте приложение Manager App по ссылке:

http://server_IP:8080/manager/html
По запросу введите свои учетные данные.

Этот менеджер нужен для управления приложениями Java.

Теперь откройте Host Manager:

http://server_IP:8080/host-manager/html/

Страница Virtual Host Manager нужна для управления виртуальными хостами; она позволяет добавлять виртуальные хосты для развёртывания приложений.

Теперь сервер Tomcat полностью готов к работе с приложениями Java без шифрования.