📄 Apache Tomcat
1. Описание
Apache Tomcat — это веб-контейнер, который позволяет запускать Java-приложения, такие как веб-сайты, REST API, микросервисы и другие приложения, основанные на Java. Tomcat не является полноценным Java EE сервером, но поддерживает большинство ключевых стандартов Java Web.
2. Установка Apache Tomcat
2.1 Предварительные требования
- Установленная Java (OpenJDK или Oracle JDK)
- Права root / sudo
Проверьте установленную версию Java:
java -version
Если Java не установлена:
sudo apt install default-jdk
2.2 Скачивание Tomcat
Перейдите на официальный сайт и скачайте последнюю версию (например, tomcat-10.1.xx.tar.gz
).
Пример через wget
:
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.12/bin/apache-tomcat-10.1.12.tar.gz
2.3 Распаковка
Создайте директорию для Tomcat:
sudo mkdir /opt/tomcat
sudo tar -xvf apache-tomcat-10.1.12.tar.gz -C /opt/tomcat --strip-components=1
3. Конфигурация
3.1 Пользователь Tomcat (опционально)
Для безопасности создайте отдельного пользователя:
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
3.2 Редактирование конфигурации
Файл: /opt/tomcat/conf/server.xml
Основные параметры:
- Порт HTTP (Connector port="8080"
)
- Админ порт (Shutdown port="8005"
)
3.3 Настройка пользователей
Редактируйте файл:
sudo nano /opt/tomcat/conf/tomcat-users.xml
Добавьте роли и пользователей:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
4. Запуск и остановка
4.1 Запуск
/opt/tomcat/bin/startup.sh
4.2 Остановка
/opt/tomcat/bin/shutdown.sh
5. Интеграция с systemd (рекомендуется)
Создайте файл сервиса:
sudo nano /etc/systemd/system/tomcat.service
Содержимое:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Перезагрузите демон и включите автозапуск:
sudo systemctl daemon-reexec
sudo systemctl enable tomcat
sudo systemctl start tomcat
sudo systemctl status tomcat
6. Доступ к интерфейсу Tomcat
Откройте браузер и перейдите:
http://ваш_сервер_ip:8080
Вы увидите главную страницу Tomcat. Для доступа к GUI-интерфейсу управления:
http://ваш_сервер_ip:8080/manager/html
🔒 Важно: Не открывайте эти страницы в публичном доступе без защиты (SSL + авторизация).
7. Развертывание приложения
7.1 Через веб-интерфейс
- Перейдите в
Manager App
. - Используйте форму "Deploy".
- Загрузите
.war
файл своего приложения.
7.2 Вручную
Положите .war
файл в директорию:
/opt/tomcat/webapps/
Tomcat автоматически его развернет при запуске.
8. Логи
Логи находятся в:
/opt/tomcat/logs/
Основные файлы:
- catalina.out
— общий лог сервера.
- localhost.log
, manager.log
— логи конкретных приложений.
Чтобы следить за логами в реальном времени:
tail -f /opt/tomcat/logs/catalina.out
9. Безопасность
- Отключите ненужные функции (например, Manager App в продакшене).
- Используйте SSL/TLS через Nginx или Apache в режиме reverse proxy.
- Обновляйте Tomcat регулярно.
- Используйте strong passwords и firewall.
10. Полезные команды
Команда | Описание |
---|---|
systemctl start tomcat |
Запустить службу |
systemctl stop tomcat |
Остановить службу |
systemctl restart tomcat |
Перезапустить |
journalctl -u tomcat |
Посмотреть системные логи |
netstat -tuln | grep 8080 |
Проверить открытые порты |
11. Пример использования с Nginx (reverse proxy)
Конфиг в Nginx:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}