Установка Apache Tomcat 9 в Debian 10

Apache Tomcat – это сервер приложений, который обслуживает приложения Java. Tomcat – это открытая реализация технологий Java Servlet и JavaServer Pages, выпущенная Apache Software Foundation. Данный мануал поможет установить и настроить Tomcat 9 на сервере Debian 10.

Требования

Для работы вам понадобится сервер Debian 10, настроенный по этому мануалу.

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

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

Обновите индекс пакетов.

sudo apt update

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

sudo apt install default-jdk

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

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

Для безопасности сервер Tomcat нужно запускать с правами обычного пользователя (не root). Давайте создадим нового пользователя и группу для сервиса.

Чтобы создать группу tomcat, введите команду:

sudo groupadd tomcat

После этого нужно создать пользователя tomcat, который должен быть членом этой группы. Домашний каталог пользователя – /opt/tomcat (в него будет установлен Tomcat); оболочка – /bin/false (чтобы никто не смог войти в учётную запись):

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

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

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

На сайте проекта найдите последнюю версию Tomcat. На текущий момент такой версией является 9.0.27. В разделе Binary Distributions найдите список Core и скопируйте ссылку на архив tar.gz.

В своей сессии SSH перейдите в каталог /tmp, который предназначен для временных пакетов.  Здесь будет удобно хранить  архив Tomcat.

cd /tmp

Для дальнейшей работы нужно установить инструмент curl:

sudo apt install curl

Чтобы загрузить архив Tomcat, используйте следующую команду (ваша ссылка может отличаться):

curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

Установите Tomcat в каталог /opt/tomcat. Создайте этот каталог и извлеките в него архив:

sudo mkdir /opt/tomcat

sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat –strip-components=1

После этого нужно установить соответствующие права на каталог.

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

Пользователь tomcat должен иметь доступ к установке. Откройте каталог Tomcat:

cd /opt/tomcat

Передайте группе tomcat права на каталог установки:

sudo chgrp -R tomcat /opt/tomcat

Затем дайте пользователю tomcat право на чтение и запуск файлов в каталоге conf:

sudo chmod -R g+r conf

sudo chmod g+x conf

После этого сделайте пользователя tomcat владельцем каталогов webapps, work, temp и logs.

sudo chown -R tomcat webapps/ work/ temp/ logs/

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

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

Серверу Tomcat нужно знать, где находится установка Java. Этот путь называется JAVA_HOME. Чтобы узнать расположение установки, используйте команду:

sudo update-java-alternatives -l

java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

Примечание: В данном примере JAVA_HOME выделен красным.

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

JAVA_HOME

/usr/lib/jvm/java-1.11.0-openjdk-amd64

Примечание: Переменная JAVA_HOME может отличаться.

Теперь можно создать service-файл. Откройте tomcat.service в каталоге /etc/systemd/system:

sudo nano /etc/systemd/system/tomcat.service

Внесите в файл следующий скрипт, при необходимости изменив переменную JAVA_HOME; также можно изменить настройки распределения памяти, которые указаны в CATALINA_OPTS:

[Unit]

Description=Apache Tomcat Web Application Container

After=network.target

[Service]

Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.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

Сохраните и закройте файл.

После этого нужно перезапустить systemd:

sudo systemctl daemon-reload

Теперь сервис Tomcat готов к запуску. Для этого используйте такую команду:

sudo systemctl start tomcat

Убедитесь, что при запуске не произошло ошибок. Запросите состояние сервиса:

sudo systemctl status tomcat

Вы получите такой вывод:

tomcat.service – Apache Tomcat Web Application Container

Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)

Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago

Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)

Main PID: 5970 (java)

Tasks: 44 (limit: 2377)

Memory: 184.2M

CGroup: /system.slice/tomcat.service

└─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.u

Oct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container…

Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started.

Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.

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

После запуска сервиса нужно убедиться, что стандартная страница открывается в браузере.

Но сначала нужно откорректировать настройки брандмауэра и разблокировать порт, по которому работает Tomcat. Если вы следовали мануалу по начальной настройке сервера, на данный момент сервер защищён брандмауэром ufw.

Для обработки запросов Tomcat использует порт 8080. Чтобы разблокировать трафик по этому порту, введите:

sudo ufw allow 8080

Теперь брандмауэр поддерживает трафик сервера Tomcat. Чтобы получить доступ к стандартной странице, откройте в браузере ссылку:

http://server_domain_or_IP:8080

На экране появится приветственная страница Tomcat, которая содержит базовую информацию о программе. Однако доступа к ссылкам (например, Manager App) у вас на данный момент не будет.

Если всё работает должным образом, включите service-файл, чтобы Tomcat автоматически запускался вместе с сервером.

sudo systemctl enable tomcat

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

Чтобы использовать родной интерфейс Tomcat, добавьте учетные данные на сервер \. Для этого отредактируйте файл tomcat-users.xml:

sudo nano /opt/tomcat/conf/tomcat-users.xml

Теперь нужно добавить пользователя, который будет иметь доступ к поставляемым с Tomcat интерфейсам: manager-gui и admin-gui. Для этого можно использовать приведённый ниже код (только укажите более сложное имя и пароль пользователя):

<tomcat-users>

. . .

<user username=”admin” password=”password” roles=”manager-gui,admin-gui”/>

</tomcat-users>

Сохраните и закройте файл tomcat-users.xml.

По умолчанию более новые версии Tomcat ограничивают доступ к приложениям Manager и Host Manager только подключениями, поступающими с самого сервера. Поскольку мы устанавливаем Tomcat на удаленную машину, это ограничение нужно снять или изменить. Чтобы изменить ограничения доступа по IP-адресам, откройте соответствующие файлы context.xml.

Для приложения Manager это файл:

sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

Для приложения Host Manager:

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

Внутри закомментируйте ограничения IP-адресов, чтобы разрешить соединения из любой точки. Кроме того, если вы хотите разрешить только соединения, поступающие с вашего собственного 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>

Сохраните и закройте файл.

Чтобы обновить настойки, перезапустите сервис Tomcat.

sudo systemctl restart tomcat

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

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

http://server_domain_or_IP:8080

На экране появится страница с сообщением:

If you’re seeing this, you’ve successfully installed Tomcat. Congratulations!

Также на этой странице есть ссылки на веб-приложения админа, для которых ранее была создана учётная запись администратора.

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

http://server_domain_or_IP:8080/manager/html

По запросу введите свои учетные данные.

Этот менеджер нужен для управления приложениями Java. Он позволяет запускать, перезапускать, развертывать, останавливать и сворачивать их. Кроме того, он может выполнять диагностику приложений (к примеру, обнаруживать утечки памяти). В конце этой страницы содержится информация о сервере.

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

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

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

Заключение

В настоящее время сервер Tomcat полностью готов к обслуживанию приложений Java, но пока что не шифрует данные. Это означает, что все данные, включая конфиденциальную информацию, отправляются простым текстом, который может быть перехвачен и прочитан третьими сторонами в Интернете. Чтобы этого не произошло, настоятельно рекомендуется шифровать ваши соединения с помощью SSL. Вы можете узнать, как зашифровать подключения к Tomcat, в мануале Шифрование соединений Tomcat 8 на Apache или Nginx в Ubuntu 16.04.

Tags: , , , , ,

Добавить комментарий