В этом руководстве описывается, как установить и настроить Tomcat 9 в Ubuntu 20.04.
Apache Tomcat — это веб-сервер с открытым исходным кодом и контейнер сервлетов Java. Это один из самых популярных вариантов для создания веб-сайтов и приложений на основе Java. Tomcat легок, прост в использовании и имеет надежную экосистему надстроек.
Содержание
Установка Java
Tomcat 9 требует, чтобы в системе была установлена Java SE 8 или новее. Мы установим OpenJDK 11 , реализацию платформы Java с открытым исходным кодом.
Выполните следующие команды от имени пользователя root или пользователя с привилегиями sudo или пользователя root, чтобы обновить индекс пакетов и установить пакет OpenJDK 11 JDK:
sudo apt update
sudo apt install openjdk-11-jdk
После завершения установки проверьте ее, проверив версию Java:
java -version
Результат должен выглядеть примерно так:
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Создание системного пользователя
Запуск Tomcat от имени пользователя root представляет угрозу безопасности. Мы создадим нового системного пользователя и группу с домашним каталогом /opt/tomcat
которые будут запускать службу Tomcat. Для этого введите следующую команду:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Скачивание Tomcat
Бинарный дистрибутив Tomcat доступен для загрузки со страницы загрузок Tomcat .
На момент написания последней версией Tomcat является 9.0.35
. Прежде чем перейти к следующему шагу, проверьте страницу загрузки Tomcat 9, чтобы узнать, доступна ли более новая версия.
Используйте wget
чтобы загрузить zip-файл Tomcat в каталог /tmp
:
VERSION=9.0.35
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp
После завершения загрузки извлеките tar-файл в каталог /opt/tomcat
:
sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/
Tomcat регулярно обновляется исправлениями безопасности и новыми функциями. Чтобы иметь больший контроль над версиями и обновлениями, мы создадим символическую ссылку под названием latest
, которая указывает на каталог установки Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
Позже, при обновлении Tomcat, распакуйте новую версию и измените символическую ссылку, чтобы она указывала на нее.
Созданный ранее системный пользователь должен иметь доступ к каталогу установки tomcat. Измените владельца каталога на пользователя и группу tomcat:
sudo chown -R tomcat: /opt/tomcat
Сценарии оболочки внутри каталога bin
Tomcat должны быть исполняемыми :
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Эти сценарии используются для запуска, остановки и управления экземпляром Tomcat.
Создание файла модуля SystemD
Вместо использования сценариев оболочки для запуска и остановки сервера Tomcat мы настроим его на работу как службу.
Откройте текстовый редактор и создайте tomcat.service
модуля tomcat.service
каталоге /etc/systemd/system/
:
sudo nano /etc/systemd/system/tomcat.service
Вставьте следующую конфигурацию:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
JAVA_HOME
если путь к вашей установке Java отличается.Сохраните и закройте файл и уведомите systemd о существовании нового файла модуля:
sudo systemctl daemon-reload
Включите и запустите службу Tomcat:
sudo systemctl enable --now tomcat
Проверить статус услуги:
sudo systemctl status tomcat
Результат должен показать, что сервер Tomcat включен и работает:
● tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s ago
Process: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 5362 (java)
...
Вы можете запускать, останавливать и перезапускать Tomcat так же, как и любую другую службу systemd:
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
Настройка межсетевого экрана
Если ваш сервер защищен брандмауэром, и вы хотите получить доступ к Tomcat извне вашей локальной сети, вам необходимо открыть порт 8080
.
Используйте следующую команду, чтобы открыть нужный порт:
sudo ufw allow 8080/tcp
8080
только из вашей внутренней сети.Настройка веб-интерфейса управления Tomcat
На этом этапе вы должны иметь доступ к Tomcat через веб-браузер через порт 8080
. Интерфейс веб-управления недоступен, потому что мы еще не создали пользователя.
Пользователи и роли Tomcat определены в tomcat-users.xml
. Этот файл представляет собой шаблон с комментариями и примерами, показывающими, как создать пользователя или роль.
В этом примере мы создадим пользователя с ролями «admin-gui» и «manager-gui». Роль «admin-gui» позволяет пользователю получить доступ к URL-адресу /host-manager/html
а также создавать, удалять и иным образом управлять виртуальными хостами. Роль «manager-gui» позволяет пользователю развертывать и отменять развертывание веб-приложений без необходимости перезапуска всего контейнера через интерфейс /host-manager/html
.
Откройте файл tomcat-users.xml
и создайте нового пользователя, как показано ниже:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
Comments
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
Убедитесь, что вы изменили имя пользователя и пароль на более безопасные.
По умолчанию веб-интерфейс управления Tomcat настроен так, чтобы разрешать доступ к приложениям Manager и Host Manager только с локального хоста. Чтобы получить доступ к веб-интерфейсу с удаленного IP-адреса, вам необходимо снять эти ограничения. Это может иметь различные последствия для безопасности и не рекомендуется для производственных систем.
Чтобы разрешить доступ к веб-интерфейсу из любого места, откройте следующие два файла и закомментируйте или удалите строки, выделенные желтым цветом.
Для приложения Manager:
sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
Для приложения Host Manager:
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<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>
Если вы хотите получить доступ к веб-интерфейсу только с определенного IP-адреса, вместо комментирования блоков добавьте свой общедоступный IP-адрес в список.
Допустим, ваш публичный IP-адрес 41.41.41.41
и вы хотите разрешить доступ только с этого IP- 41.41.41.41
:
<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|41.41.41.41" />
</Context>
Список разрешенных IP-адресов представляет собой список, разделенный вертикальной чертой |
. Вы можете добавить отдельные IP-адреса или использовать регулярные выражения.
После этого перезапустите службу Tomcat, чтобы изменения вступили в силу:
sudo systemctl restart tomcat
Проверьте установку Tomcat
Откройте браузер и введите: http://<your_domain_or_IP_address>:8080
Если установка прошла успешно, должен появиться экран, подобный следующему:
Менеджер веб-приложений Tomcat доступен по адресу: http://<your_domain_or_IP_address>:8080/manager/html
.
Менеджер виртуальных хостов Tomcat доступен по адресу: http://<your_domain_or_IP_address>:8080/host-manager/html
.
Выводы
Мы показали вам, как установить Tomcat 9.0 на CentOS 8 и как получить доступ к интерфейсу управления Tomcat.
Для получения дополнительной информации об Apache Tomcat посетите официальную страницу документации .
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.