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

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

7 min read DevOps Обновлено 10 Apr 2026
Установка Apache Tomcat 10 на Ubuntu 20.04
Установка Apache Tomcat 10 на Ubuntu 20.04

В этой инструкции пошагово показано, как установить Apache Tomcat 10 на Ubuntu 20.04: установить JDK, загрузить и распаковать Tomcat 10, создать системного пользователя и unit-файл systemd, открыть доступ к менеджеру и проверить работу сервера на порту 8080. Включены рекомендации по безопасности, отладке и альтернативные способы установки.

Почему это важно

Apache Tomcat — легковесный и широко используемый контейнер сервлетов для запуска Java-веб-приложений (JSP, Servlet, WebSocket). Эта инструкция поможет запустить Tomcat 10 локально или на сервере Ubuntu 20.04 и обеспечить базовую безопасность и управляемость сервиса.

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

  • JDK: Java Development Kit — набор инструментов для запуска и разработки Java-приложений.
  • Tomcat: контейнер сервлетов и HTTP-сервер для Java-приложений.

Содержание

    1. Требования и подготовка
    1. Установка Java (последняя версия)
    1. Загрузка и установка Apache Tomcat 10
    1. Создание учётной записи и права доступа
    1. Разрешение доступа к приложениям manager / host-manager
    1. Systemd unit для управления Tomcat
    1. Доступ к веб-интерфейсу
    1. Безопасность и жёсткие рекомендации
    1. Альтернативные варианты установки
    1. Отладка и runbook при сбоях
    1. Роль‑ориентированные чеклисты
    1. Критерии приёмки
    1. Короткое объявление для команды
  • Итог и ссылки

1. Требования и подготовка

Перед началом убедитесь в следующем:

  • У вас есть доступ к серверу с Ubuntu 20.04 (локально или через SSH) с правами sudo.
  • Свежая система: выполните обновление пакетов.
  • Если вы только что установили систему, добавьте отдельного пользователя для повседневной работы и выполнения команд с sudo.

Команда для обновления пакетов:

sudo apt update
sudo apt upgrade -y

Важно: Tomcat — Java-приложение. Для корректной работы требуется JDK версии 8 или выше (Tomcat 10 поддерживает JDK 8+). Неподходящая версия JDK приведёт к ошибкам запуска.

2. Установка Java (The Latest Version)

Установим стандартную версию JDK из репозиториев Ubuntu:

sudo apt update
sudo apt install default-jdk -y

Окно терминала во время установки JDK в Ubuntu

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

java -version

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

Ожидаемая строка содержит информацию о OpenJDK или другом установленном JDK. Если версия ниже 8, обновите JDK до 8+.

3. Apache Tomcat 10 — загрузка и установка

Скачиваем официальный релиз Tomcat 10. В примерах используется v10.0.18 — при чтении позже замените номер версии на актуальный.

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

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

Распакуйте архив:

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 в системное расположение

Альтернатива — распаковать сразу в целевую директорию и убрать первый уровень архива:

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

Выбор директории (/opt/tomcat или /usr/share/apache-tomcat) зависит от вашей политики организации. В дальнейшем в примерах используется /usr/share/apache-tomcat.

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

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

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

sudo groupadd --system tomcat
sudo useradd -s /bin/false -g tomcat -d /usr/share/apache-tomcat tomcat

Откройте файл с пользователями менеджера Tomcat для добавления аккаунтов администратора и менеджера:

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

Вставьте / отредактируйте строки для пользователя с ролями manager-gui и admin-gui. Установите надёжные пароли.

Интерфейс редактирования имени пользователя и пароля

Настройте права на каталог Tomcat:

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

Эти команды гарантируют, что только пользователь tomcat сможет запускать скрипты внутри bin.

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

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

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

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

allow="127\.
\d+\.
\d+\.
\d+|::1|0:0:0:0:0:0:0:1|10.0.2.15" />

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

Совет: в продакшне лучше вместо wildcard разрешений использовать firewall и reverse proxy с аутентификацией.

6. Systemd unit для управления Tomcat

Создайте unit-файл systemd, чтобы управлять Tomcat как службой.

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 в nano

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

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

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

sudo systemctl status tomcat.service

Проверка статуса tomcat.service

При успешном запуске статус должен быть active (running).

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

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

sudo ss -tunelp | grep 8080

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

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

http://localhost:8080/

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

Для доступа к manager-приложению используйте имя пользователя и пароль, указанные в conf/tomcat-users.xml.

Окно запроса имени пользователя и пароля Tomcat-Server

Если браузер не показывает UI, проверьте журналы:

sudo journalctl -u tomcat.service -n 200
sudo tail -n 200 /opt/tomcat/logs/catalina.out

8. Безопасность и рекомендации по жёсткому конфигурированию

Важно обеспечить минимально возможную атаку по поверхности. Основные шаги:

  • Не запускать Tomcat как root. Используйте отдельного пользователя tomcat.
  • Закрыть доступ к manager/host-manager по IP и/или дополнительно защитить reverse proxy (Nginx) базовой аутентификацией и TLS.
  • Блокировать неиспользуемые порты firewall (ufw):
sudo ufw allow ssh
sudo ufw allow 8080/tcp   # временно, пока не настроен reverse proxy
sudo ufw enable
  • Настроить SSL через reverse proxy (Nginx/Apache HTTPD) и отключить прямой доступ к порту 8080 со стороны интернета.
  • Регулярно обновлять JDK и Tomcat до поддерживаемых версий.
  • Ограничить права файловой системы: конфигурация и секреты доступны только tomcat и админам.
  • Отключить ненужные приложеня webapps (пример: examples, docs) в продакшне.

Пример обратного прокси (Nginx) — схема:

  • Nginx принимает запросы на 443, выполняет TLS и базовую аутентификацию.
  • Nginx проксирует запросы к локальному Tomcat на 127.0.0.1:8080.

Без reverse proxy TLS на Tomcat возможен, но сложнее в поддержке и автоматизации.

9. Альтернативные подходы к установке

  • Установка из пакетов репозитория: в Ubuntu 20.04 доступен tomcat9 в apt. Для простых задач это быстрее, но версия может отличаться от Tomcat 10.
sudo apt install tomcat9 -y
  • Контейнеризация: запуск Tomcat в Docker-контейнере даёт изоляцию и упрощает деплой. Официальные образы доступны на Docker Hub (apache/tomcat).

  • Управляемые облачные решения: если вы не хотите управлять ОС и обновлениями, используйте платформы PaaS, которые предоставляют контейнеры приложений Java.

Когда не использовать ручную установку: если нужна быстрая изоляция и масштабирование — контейнеры или оркестраторы (Kubernetes) предпочтительнее.

10. Отладка: runbook при типичных проблемах

Симптом: Tomcat не запускается (service inactive/failed)

  • Действия:
    1. Просмотрите журнал systemd: sudo journalctl -u tomcat.service -n 200
    2. Проверьте catalina.out: sudo tail -n 200 /opt/tomcat/logs/catalina.out
    3. Убедитесь, что JAVA_HOME указывает на существующий JDK.
    4. Проверьте права на /opt/tomcat — файлы должны принадлежать tomcat:tomcat.

Симптом: Пустая страница или 404 на /manager

  • Убедитесь, что в conf/tomcat-users.xml есть пользователь с ролями manager-gui и admin-gui.
  • Проверьте context.xml в manager и host-manager — возможно, IP не разрешён.

Симптом: Порт 8080 занят

  • Найдите процесс: sudo ss -tunelp | grep 8080
  • Остановите процесс или измените порт в conf/server.xml.

Симптом: Ошибки ClassNotFound при деплое приложения

  • Убедитесь, что приложение собрано для совместимой версии JDK и использует корректный classpath.
  • Проверьте, нет ли конфликтующих библиотек в /opt/tomcat/lib и WEB-INF/lib.

Критерии для восстановления после изменений в конфигурации:

sudo systemctl daemon-reload
sudo systemctl restart tomcat.service
sudo systemctl status tomcat.service

11. Роль‑ориентированные чеклисты

Системный администратор:

  • Установить JDK и Tomcat.
  • Создать системного пользователя tomcat.
  • Настроить systemd unit и автозапуск.
  • Оградить доступ firewall.

DevOps-инженер:

  • Интегрировать деплой приложений (CI/CD), настроить артефакты .war.
  • Настроить мониторинг и логи (Prometheus, ELK, Grafana).
  • Настроить контейнеризацию/образ для окружений.

Разработчик:

  • Проверить совместимость JDK и версий зависимостей.
  • Убедиться, что приложение корректно деплоится в manager или через скрипт.

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

Система считается корректно установленной, если выполняются все пункты:

  • Tomcat запускается как systemd-сервис и в статусе active (running).
  • Порт 8080 прослушивается и на http://localhost:8080/ доступна стартовая страница.
  • Пользователь для manager может войти и увидеть manager GUI.
  • Логи не содержат критических ошибок при старте.
  • Доступ к manager ограничен согласно политике безопасности.

13. Короткое объявление для команды (100–200 слов)

Мы развернули Apache Tomcat 10 на Ubuntu 20.04. Установлен JDK, настроен непривилегированный пользователь tomcat и systemd unit для автоматического запуска. Менеджер приложений доступен по учетной записи, указанной в conf/tomcat-users.xml; доступ к manager и host-manager ограничен по IP в context.xml. В целях безопасности рекомендую настроить обратный прокси (Nginx) с TLS и вынести порт 8080 из внешнего доступа. Если вы планируете регулярный деплой приложений, настройте CI/CD для загрузки .war в /opt/tomcat/webapps и автоматического перезапуска сервиса. Для вопросов по доступу или логам обращайтесь к ответственному администратору.


Дополнительные советы и замечания

  • Версии: если вы читаете руководство позже, замените 10.0.18 в командах на актуальную версию Tomcat. Использование некорректного номера приведёт к ошибке при скачивании.
  • Логи важны: /opt/tomcat/logs и journalctl — первые источники информации при проблемах.
  • Резервное копирование: сохраняйте копии конфигурации перед изменениями.

Факты (коротко):

  • Порт по умолчанию: 8080
  • Требуемая версия JDK: 8 или выше
  • Пример целевой папки: /usr/share/apache-tomcat или /opt/tomcat

Важно

  • Не оставляйте manager и host-manager открытыми для всего интернета. Это частая причина взломов и утечек.

Итог

Вы успешно установили и настроили Apache Tomcat 10 на Ubuntu 20.04. Следуйте чеклистам роли и рекомендациям по безопасности. Для развёртывания в продакшн рассмотрите настройку reverse proxy, TLS и интеграцию с системой мониторинга.

Сводка ключевых команд (шпаргалка):

sudo apt update
sudo apt install default-jdk -y
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
sudo groupadd --system tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

Спасибо за внимание. Если нужно, могу подготовить автоматизированный сценарий (bash) для полной установки и базовой настройки на чистой Ubuntu 20.04.

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

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

Папка автозагрузки Windows — найти и управлять
Windows

Папка автозагрузки Windows — найти и управлять

Отключить исчезновение окон в macOS Sonoma
macOS

Отключить исчезновение окон в macOS Sonoma

Отключить клавишу Globe на Mac
macOS

Отключить клавишу Globe на Mac

Отключить миниатюры скриншотов на Mac
macOS

Отключить миниатюры скриншотов на Mac

RAW в JPEG на Mac — через Preview
Фото

RAW в JPEG на Mac — через Preview

Удалить фон с фото на Mac — быстро и без программ
macOS

Удалить фон с фото на Mac — быстро и без программ