Гид по технологиям

Установка Apache Tomcat 10 на Ubuntu 20.04

6 min read DevOps Обновлено 25 Dec 2025
Установка Apache Tomcat 10 на Ubuntu 20.04
Установка Apache Tomcat 10 на Ubuntu 20.04

TL;DR

Tomcat — это контейнер сервлетов для запуска Java-веб‑приложений. В статье показано, как установить JDK, скачать Tomcat 10, настроить пользователя, права, systemd‑сервис и получить доступ к веб‑интерфейсу на Ubuntu 20.04. Следуйте шагам последовательно и проверьте состояние службы после каждого изменения.

Введение

Человек за ноутбуком с кодом

Apache Tomcat (Tomcat Server) — это свободный HTTP‑сервер и контейнер сервлетов для запуска Java‑приложений. Tomcat поддерживает JSP, WebSocket, Java Servlet, Java EL и обеспечивает полностью Java‑ориентированное окружение для веб‑приложений. Проект поддерживает сообщество разработчиков под управлением Apache Software Foundation. Tomcat кросс‑платформенный и работает под Linux и Windows. Эта инструкция описывает установку Apache Tomcat 10 на Ubuntu 20.04.

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


Что нужно перед началом

  • Ubuntu 20.04 с доступом sudo. Рекомендуется создать отдельного пользователя для запуска Tomcat.
  • Свежая установка пакетов: sudo apt update.
  • Понимание основных команд systemd (start, enable, status).

1. Установка Java (JDK)

Tomcat запускает Java‑код и требует JDK версии 8 или выше. На Ubuntu проще всего установить пакет default‑jdk.

В терминале выполните:

sudo apt update
sudo apt install default-jdk -y

Окно терминала процесса установки JDK

Флаг -y автоматически подтверждает установку. Проверьте версию Java:

java -version

Окно терминала для проверки версии Java

Ожидайте вывод, похожий на OpenJDK 11.x или выше. Если у вас другая версия JDK, убедитесь в её совместимости с выбранной версией Tomcat.

2. Скачивание и распаковка Apache Tomcat 10

Скачивайте Tomcat с официального зеркала Apache. Пример для v10.0.18:

wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz

Окно с командой загрузки Apache Tomcat

Если версия изменилась, замените номер релиза в URL. Затем распакуйте архив:

tar xvf apache-tomcat-10.0.18.tar.gz

Распаковка архива Tomcat командой tar xvf

Перенесите распакованную папку в системную директорию. В примере используется /usr/share/apache-tomcat:

sudo mv apache-tomcat-10.0.18 /usr/share/apache-tomcat

Команда для перемещения директории Tomcat в системную папку

Альтернативный однострочный способ распаковки и перемещения (замените /opt/tomcat на желаемую директорию):

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

Совет по размещению: /opt или /usr/share — стандартные места для сторонних сервисов. Выберите удобное для вас.

3. Создание пользователя Tomcat и права доступа

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

Создайте пользователя и группу tomcat (если ещё не созданы):

sudo groupadd --system tomcat
sudo useradd -s /bin/false -g tomcat --system tomcat

Отредактируйте файл пользователей Tomcat, чтобы дать доступ менеджера и host‑manager. Откройте конфигурацию:

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

Вставьте или измените блок с ролями и пользователями. Пример (замените admin и пароль на свои значения):



Интерфейс редактирования username и password

Затем установите владельца и права на каталоги Tomcat:

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Команды для установки прав доступа к файлам Tomcat

Важно: не используйте слабые пароли для менеджеров. В продакшне доступ к manager/host‑manager обычно ограничивают по IP и/или закрывают для публичного доступа.

4. Разрешение доступа к manager и host-manager

По умолчанию веб‑приложения manager и host‑manager ограничивают доступ к локальному хосту. Отредактируйте их context.xml, чтобы добавить разрешенные IP или удалить ограничение (не рекомендуется).

Откройте файлы:

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

Найдите блок Valve и корректируйте allow. Пример добавления адреса 10.0.2.15:

Изменения в файле для включения доступа

Примечание: используйте корректные регулярные выражения и экранирование. Альтернативно ограничьте доступ через брандмауэр (UFW) или обратный прокси (nginx) перед Tomcat.

5. Создание systemd‑сервиса для Tomcat

Чтобы управлять Tomcat через systemctl, создайте unit‑файл.

Откройте редактор:

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

Вставьте следующий пример (проверьте пути и переменные):

[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/usr/share/apache-tomcat
Environment=CATALINA_BASE=/usr/share/apache-tomcat
Environment=CATALINA_PID=/usr/share/apache-tomcat/temp/tomcat.pid
ExecStart=/usr/share/apache-tomcat/bin/catalina.sh start
ExecStop=/usr/share/apache-tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

Редактирование tomcat.service в редакторе

Перезагрузите демона systemd и включите сервис:

sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

Проверьте статус:

sudo systemctl status tomcat.service

Окно терминала проверки статуса tomcat.service

Должно отображаться active (running). Если служба не запускается, проверьте логи в /usr/share/apache-tomcat/logs.

6. Доступ к веб‑интерфейсу Tomcat

Tomcat по умолчанию слушает порт 8080. Проверьте, что порт занят Tomcat:

sudo ss -tunelp | grep 8080

Проверка порта 8080 в терминале

Откройте в браузере:

http://localhost:8080/

Веб‑интерфейс Tomcat

Для входа используйте имя и пароль, указанные в tomcat-users.xml:

Окно запроса логина и пароля Tomcat

Если доступ не работает, перезапустите службу и просмотрите логи:

sudo systemctl restart tomcat.service
sudo journalctl -u tomcat.service --no-pager | tail -n 200
sudo tail -n 200 /usr/share/apache-tomcat/logs/catalina.out

Практические советы и безопасность

  • Не открывайте manager/host‑manager в публичный доступ. Используйте VPN, SSH‑туннель или обратный прокси с IP‑фильтрацией.
  • Настройте TLS через обратный прокси (nginx или Apache httpd) перед Tomcat. Tomcat может работать с TLS напрямую, но обычно SSL терминируют на прокси.
  • Обновляйте JDK и Tomcat по мере выхода исправлений безопасности.
  • Разрешайте только необходимые роли и минимизируйте права у пользователя tomcat.

Отладка и распространённые ошибки

  • Сервис не запускается: проверьте права на каталоги, наличие JAVA_HOME и лог фалы (/logs/catalina.out).
  • Порт 8080 занят: измените конфигурацию Connector в server.xml или освободите порт.
  • Ошибка доступа к manager: проверьте tomcat-users.xml и allow в context.xml.

Дополнительная ценность — подборка руководств, чеклистов и сниппетов

Быстрый чеклист инженера (через 10 минут)

  • Установлен JDK (java -version).
  • Перемещён Tomcat в /opt или /usr/share.
  • Создан пользователь tomcat и заданы права.
  • Настроен tomcat.service и включён в systemd.
  • Проверен статус службы и доступ через порт 8080.
  • Ограничен доступ к manager/host‑manager.

Мини‑методология развертывания в продакшн

  1. Подготовьте отдельный сервер или контейнер.
  2. Установите и зафиксируйте версию JDK.
  3. Разверните Tomcat в /opt/tomcat и настроьте user/tomcat.
  4. Настройте systemd и мониторинг (Prometheus/Alertmanager или стандартный мониторинг хостинга).
  5. Настройте обратный прокси с TLS.
  6. Протестируйте деплой и сценарии отката.

Фрагмент systemd‑unit (шпаргалка)

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
User=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/default-java
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Короткая галерея причин падения и решения

  • Запуск от root: нежелательно — используйте системного пользователя.
  • Неверные права: исправьте chown/chmod.
  • Неправильный JAVA_HOME: укажите реальный путь до JDK.

Совместимость и миграция

  • Tomcat 10 использует спецификацию Jakarta EE (пакет javax → jakarta). При миграции приложений обратите внимание на импорты и зависимости. Многие приложения, собранные под Tomcat 9 (javax), потребуют изменений для Tomcat 10.
  • Если приложение не совместимо с Jakarta API, предпочитайте Tomcat 9 или адаптируйте приложение.

Критерии приёмки

  • Tomcat сервис активен: sudo systemctl status tomcat.service показывает active (running).
  • По адресу http://localhost:8080/ загружается приветственная страница Tomcat.
  • Доступ к manager защищён и работает с заданными учётными данными.

Заключение

Вы установили Apache Tomcat 10 на Ubuntu 20.04: установили JDK, скачали и развернули архив Tomcat, создали системного пользователя, настроили права, разрешили доступ к manager и завели systemd‑сервис. Для продакшна дополнительно настройте TLS через обратный прокси, ограничьте доступ к административным приложениям и регулярно обновляйте компоненты.

Важно: при обновлении Tomcat проверяйте изменения API (Jakarta EE) и меняйте приложение при необходимости.


Быстрые ссылки и команды (шпаргалка)

  • Обновление пакетов: sudo apt update
  • Установка JDK: sudo apt install default-jdk -y
  • Проверка Java: java -version
  • Скачивание Tomcat: wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
  • Распаковка: tar xvf apache-tomcat-10.0.18.tar.gz
  • Перемещение: sudo mv apache-tomcat-10.0.18 /usr/share/apache-tomcat
  • Права: sudo chown -R tomcat:tomcat /opt/tomcat/ && sudo chmod -R u+x /opt/tomcat/bin
  • systemd: sudo systemctl daemon-reload && sudo systemctl start tomcat.service && sudo systemctl enable tomcat.service
  • Логи: sudo journalctl -u tomcat.service –no-pager

Терминал с командами перезагрузки и включения Tomcat

Спасибо за внимание. Если нужно, могу подготовить инструкцию с настройкой Nginx в качестве обратного прокси с TLS и примером конфигурации для автоматического деплоя WAR‑файлов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Гибернация в Windows 11: включение и советы
Windows 11

Гибернация в Windows 11: включение и советы

Отключение автоматических обновлений в Google Play
Android.

Отключение автоматических обновлений в Google Play

Включить ярлыки специальных папок в Пуск Windows 11
Windows

Включить ярлыки специальных папок в Пуск Windows 11

Windows 11 самопроизвольно перезагружается — как исправить
Windows

Windows 11 самопроизвольно перезагружается — как исправить

Включить systemd в WSL — пошагово и советы
Разработка

Включить systemd в WSL — пошагово и советы

Как сохранить письма Apple Mail в PDF на Mac
macOS

Как сохранить письма Apple Mail в PDF на Mac