Как установить Tomcat 9 в Ubuntu 18.04

Apache Tomcat — это реализация с открытым исходным кодом технологий Java Servlet, JavaServer Pages, Java Expression Language и Java WebSocket. Сегодня это один из наиболее широко используемых приложений и веб-серверов в мире. Tomcat прост в использовании и имеет надежную экосистему надстроек.

В этом руководстве объясняется, как установить и настроить Tomcat 9 в Ubuntu 18.04. Те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Linux Mint и Elementary OS.

Подготовка

Чтобы иметь возможность устанавливать пакеты в вашей системе Ubuntu, вы должны войти в систему как пользователь с привилегиями sudo .

Шаг 1. Установите OpenJDK

Tomcat требует установки Java. Мы установим OpenJDK , который является средой разработки и выполнения Java по умолчанию в Ubuntu 18.04.

Установка Java довольно проста. Начните с обновления индекса пакета:

sudo apt update

Установите пакет OpenJDK, запустив:

sudo apt install default-jdk

Шаг 2. Создайте пользователя Tomcat

В целях безопасности Tomcat не следует запускать от имени пользователя root. Мы создадим нового системного пользователя и группу с домашним каталогом /opt/tomcat которые будут запускать службу Tomcat:

sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat

Шаг 3: Установите Tomcat

Мы загрузим последнюю двоичную версию Tomcat 9 со страницы загрузок Tomcat 9 .

На момент написания последняя версия — 9.0.27 . Прежде чем перейти к следующему шагу, вам следует проверить страницу загрузки на предмет наличия новой версии. Если есть новая версия, скопируйте ссылку на файл Core tar.gz , который находится в разделе Binary Distributions.

Начните с загрузки архива Tomcat в каталог /tmp используя следующую команду wget :

wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp

После завершения загрузки извлеките архив Tomcat и переместите его в каталог /opt/tomcat :

sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat

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

sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest

Позже, если вы захотите обновить свой экземпляр Tomcat, просто распакуйте более новую версию и измените символическую ссылку, чтобы она указывала на последнюю версию.

Как мы упоминали в предыдущем разделе, Tomcat будет работать под пользователем tomcat . Этот пользователь должен иметь доступ к каталогу установки tomcat.

Следующая команда меняет владельца каталога на пользователя и группу tomcat:

sudo chown -RH tomcat: /opt/tomcat/latest

Скрипты внутри каталога bin должны иметь флаг исполняемого файла :

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Шаг 4. Создайте файл модуля systemd

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

Откройте текстовый редактор и создайте файл с именем tomcat.service в tomcat.service /etc/systemd/system/ :

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

Вставьте следующую конфигурацию:

/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/default-java"
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 start tomcat

Проверьте статус службы с помощью следующей команды:

sudo systemctl status tomcat
* tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
  Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 1604 (java)
    Tasks: 47 (limit: 2319)
   CGroup: /system.slice/tomcat.service

Если ошибок нет, включите автоматический запуск службы Tomcat во время загрузки:

sudo systemctl enable tomcat

Шаг 5. Настройте брандмауэр

Если ваш сервер защищен брандмауэром, и вы хотите получить доступ к Tomcat извне вашей локальной сети, вам необходимо открыть порт 8080 .

Чтобы разрешить трафик на порт 8080 введите следующую команду:

sudo ufw allow 8080/tcp
Обычно при запуске приложения Tomcat в производственной среде у вас будет балансировщик нагрузки или обратный прокси . Рекомендуется ограничить доступ к порту 8080 только для вашей внутренней сети.

Шаг 6. Настройте веб-интерфейс управления Tomcat

Теперь, когда Tomcat установлен и запущен, следующим шагом будет создание пользователя с доступом к веб-интерфейсу управления.

Пользователи и роли Tomcat определены в tomcat-users.xml . Этот файл представляет собой шаблон с комментариями и примерами, описывающими, как настроить пользователя или роль.

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

Чтобы добавить нового пользователя с доступом к веб-интерфейсу Tomcat (manager-gui и admin-gui), нам нужно определить пользователя в tomcat-users.xml , как показано ниже. Убедитесь, что вы изменили имя пользователя и пароль на более безопасные:

/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.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>

Другой вариант — разрешить доступ к приложениям Manager и Host Manager только с определенного IP-адреса. Вместо того, чтобы комментировать блоки, вы можете просто добавить свой IP-адрес в список.

Например, если ваш публичный IP-адрес 45.45.45.45 вы должны внести следующие изменения:

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|45.45.45.45" />
</Context>

Список разрешенных IP-адресов представляет собой список, разделенный вертикальной чертой | . Вы можете добавить отдельные IP-адреса или использовать регулярные выражения.

Не забудьте перезапускать службу Tomcat каждый раз, когда вы редактируете файлы конфигурации Tomcat, чтобы изменения вступили в силу:

sudo systemctl restart tomcat

Шаг 6: Проверьте установку Tomcat

Откройте браузер и введите: http://<your_domain_or_IP_address>:8080

Если установка прошла успешно, должен появиться экран, подобный следующему:

Панель управления диспетчером веб-приложений Tomcat доступна по адресу http://<your_domain_or_IP_address>:8080/manager/html . Отсюда вы можете развертывать, отменять развертывание, запускать, останавливать и перезагружать свои приложения.

Вы можете войти в систему с пользователем, которого создали на Step 6 .

Панель управления диспетчером виртуальных хостов Tomcat доступна по адресу http://<your_domain_or_IP_address>:8080/host-manager/html . Отсюда вы можете создавать, удалять и управлять виртуальными хостами Tomcat.

Выводы

Вы успешно установили Tomcat 9 в свою систему Ubuntu 18.04. Теперь вы можете посетить официальную документацию Apache Tomcat 9 и узнать больше о функциях Apache Tomcat.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Оставьте комментарий