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
Вставьте следующую конфигурацию:
[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
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
, как показано ниже. Убедитесь, что вы изменили имя пользователя и пароль на более безопасные:
<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>
Другой вариант — разрешить доступ к приложениям Manager и Host Manager только с определенного IP-адреса. Вместо того, чтобы комментировать блоки, вы можете просто добавить свой IP-адрес в список.
Например, если ваш публичный IP-адрес 45.45.45.45
вы должны внести следующие изменения:
<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.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.