Установка Jetty на Debian 10

О чём эта инструкция
Jetty — лёгкий, встраиваемый HTTP-сервер на Java. Его используют в продуктах вроде Alfresco, Apache ActiveMQ и Hadoop. Эта инструкция пошагово покажет установку Jetty на Debian 10 и базовую настройку с Nginx как обратным прокси.
Требования
- Сервер с Debian 10.
- Пароль root или доступ по sudo.
- Доступ в интернет для загрузки пакетов.
Начало работы
Перед установкой рекомендую обновить пакеты и перезагрузить систему, если требуется:
apt-get update -y
apt-get upgrade -yЕсли ядро или системные сервисы обновились, перезагрузите сервер:
systemctl rebootВажно: выполняйте обновления в окне обслуживания, если это продакшн-сервер.
Установка Java
Jetty — Java-приложение, поэтому нужна JDK. В репозитории Debian доступна стандартная версия OpenJDK:
apt-get install default-jdk -yПроверьте версию Java:
java --versionОжидаемый вывод (пример):
openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-post-Debian-5)
OpenJDK 64-Bit Server VM (build 11.0.3+7-post-Debian-5, mixed mode, sharing)Если на сервере уже установлена другая версия Java, убедитесь, что она совместима с используемыми вами приложениями.
Установка Jetty
В Debian 10 Jetty доступен как пакет jetty9. Установите его так:
apt-get install jetty9 -yПроверка информации о пакете:
apt show jetty9Примерный вывод:
Package: jetty9
Version: 9.4.15-1
Priority: optional
Section: java
Maintainer: Debian Java Maintainers <[email protected]>
Installed-Size: 757 kBЗапустите и включите автозапуск сервиса:
systemctl start jetty9
systemctl enable jetty9Проверьте статус:
systemctl status jetty9Пример логов сервиса (фрагмент):
? jetty9.service - Jetty 9 Web Application Server
Loaded: loaded (/lib/systemd/system/jetty9.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-09-28 02:47:55 EDT; 1min 11s ago
Docs: https://www.eclipse.org/jetty/documentation/current/
Main PID: 1658 (java)
Tasks: 24 (limit: 1138)
Memory: 69.9M
CGroup: /system.slice/jetty9.service
??1658 /usr/bin/java -Djetty.home=/usr/share/jetty9 -Djetty.base=/usr/share/jetty9 -Djava.io.tmpdir=/tmp -jar /usr/share/jetty9/starЕсли сервис не запускается, смотрите раздел Траблшутинг ниже.
Настройка Nginx как обратного прокси для Jetty
По умолчанию Jetty слушает на порту 8080. Чтобы открыть приложение по порту 80 через домен, используйте Nginx в качестве обратного прокси.
- Установите Nginx:
apt-get install nginx -y- Создайте конфигурацию виртуального хоста:
nano /etc/nginx/sites-available/jetty.confВставьте:
upstream jetty {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://jetty/;
}
}Сохраните файл. Проверьте синтаксис Nginx:
nginx -tПримените конфигурацию и перезапустите сервис:
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginxСовет: замените example.com на ваш домен и добавьте директиву server_name с алиасами, если нужно.
Доступ к веб-интерфейсу Jetty
Откройте в браузере http://example.com (замените на свой домен). По умолчанию вы увидите страницу Jetty.

Поздравляю — Jetty установлен и доступен через Nginx.
Безопасность и жёсткие настройки
- Запускайте Jetty от непривилегированного пользователя. В пакете Debian это обычно учтено.
- Закройте ненужные порты в брандмауэре (ufw/iptables). Оставьте 80 и, при необходимости, 443 открытыми.
- Для публичных сайтов настраивайте TLS: используйте Certbot для получения сертификата Let’s Encrypt и настройте редирект с 80 на 443.
- Настройте заголовки безопасности (Content-Security-Policy, X-Frame-Options) на уровне Nginx.
- Ограничьте доступ к административным контекстам Jetty через IP-фаервол или базовую аутентификацию.
Траблшутинг — часто встречаемые проблемы
- Сервис не стартует: смотрите
journalctl -u jetty9 -bи/var/log/jetty9/*. - Порт 8080 занят: убедитесь, что никакой другой сервис не слушает 8080 (
ss -tulpn | grep 8080). - Nginx возвращает 502/504: проверьте, доступен ли backend по 127.0.0.1:8080 и нет ли таймаута. Увеличьте proxy_read_timeout при необходимости.
- Проблемы с правами: проверьте владельца и права в /var/lib/jetty9 и /usr/share/jetty9.
Альтернативные подходы
- Docker: запустить официальный образ Jetty если хотите изолировать окружение и упростить деплой.
- Ручная установка: скачать дистрибутив с сайта Eclipse Jetty и управлять инсталляцией самостоятельно (больше контроля, но нужна ручная конфигурация systemd).
- Использовать другой обратный прокси: Caddy, HAProxy или встроенные возможности балансировки.
Чеклист по ролям
Системный администратор:
- Обновил систему и установил JDK.
- Установил и запустил jetty9, настроил автозапуск.
- Настроил Nginx и TLS.
- Проверил логи и ошибки.
Разработчик:
- Развернул приложение в webapps или сконфигурировал jetty.base.
- Проверил рабочую область JVM и параметры памяти.
- Протестировал приложение через Nginx.
Критерии приёмки
- Jetty работает и отвечает на запросы локально (curl http://127.0.0.1:8080).
- Nginx проксирует домен на Jetty и возвращает корректный HTML.
- Сервис jetty9 имеет статус active (running).
- Логи ошибок пусты за период тестирования.
Короткая методология развертывания
- Подготовить и обновить систему.
- Установить OpenJDK.
- Установить jetty9 и проверить сервис.
- Установить и настроить Nginx как прокси.
- Настроить TLS и политики безопасности.
- Тестирование и ввод в эксплуатацию.
Когда этот подход не подходит
- Нужна максимальная производительность и тонкая настройка JVM — возможно, лучше ручная сборка Jetty или оптимизация параметров JVM.
- Требуется контейнеризация и быстрое масштабирование — рассмотрите Docker/Kubernetes.
Резюме
Установка Jetty на Debian 10 проста при использовании пакетов из репозитория: достаточно установить JDK, пакет jetty9 и при необходимости настроить Nginx как обратный прокси. Дополнительно рекомендуется настроить TLS и заголовки безопасности. В приложении выше вы найдёте чеклисты для администратора и разработчика, советы по устранению проблем и альтернативные варианты развертывания.
Важно: всегда тестируйте изменения на тестовом окружении перед выкатом в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента