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

Установка GlassFish с Nginx на Debian 11

• 5 min read • DevOps • Обновлено 24 Nov 2025
GlassFish + Nginx на Debian 11 — установка
GlassFish + Nginx на Debian 11 — установка

Сервер GlassFish и Nginx

GlassFish — это сервер приложений с открытым исходным кодом для развёртывания Java-приложений. Он поддерживает JPA, JavaServer Faces, JMS, RMI и другие Java-технологии. Доступно как веб-интерфейс, так и командная строка для управления приложениями и компонентами. GlassFish позволяет создавать переносимые и масштабируемые приложения, которые можно интегрировать с устаревшими системами.

Предварительные требования

  • Сервер с Debian 11.
  • Действительный домен, указывающий на IP сервера.
  • Настроен root-пароль или привилегии sudo.

Установка Java

GlassFish требует установленную JDK. Установите её и unzip командой:

apt-get install default-jdk unzip -y

Проверьте установку Java:

java --version

Ожидаемый пример вывода:

openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)

После успешной установки переходите к загрузке GlassFish.

Загрузка GlassFish

Скачайте последнюю версию GlassFish с сайта Eclipse (пример для версии 6.1.0):

wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip

Распакуйте архив в каталог /opt:

unzip glassfish-6.1.0.zip -d /opt/

Создание systemd-сервиса для GlassFish

Создайте unit-файл systemd для управления сервисом:

nano /usr/lib/systemd/system/glassfish.service

Вставьте в него:

[Unit]
Description = GlassFish Server v6.1.0
After = syslog.target network.target

[Service]
User = root
ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain
ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain
ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-domain
Type = forking

[Install]
WantedBy = multi-user.target

Сохраните файл и перезагрузите демон systemd:

systemctl daemon-reload

Запустите сервис и включите автозапуск:

systemctl start glassfish
systemctl enable glassfish

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

systemctl status glassfish

Пример ожидаемого фрагмента вывода показывает, что domain1 запущен и доступен (Admin Port: 4848).

Установка пароля администратора GlassFish

По умолчанию GlassFish доступен без пароля. Защитите админ-интерфейс и включите secure admin:

/opt/glassfish6/bin/asadmin --port 4848 change-admin-password

При запросе укажите имя пользователя (по умолчанию admin), затем текущий пароль (Enter, если не задан) и новый пароль дважды. Вы должны увидеть сообщение об успешном завершении:

Command change-admin-password executed successfully.

Затем включите защищённый доступ (HTTPS) для админ-интерфейса:

/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin

Введите имя пользователя и пароль. Затем перезапустите GlassFish:

systemctl restart glassfish

Важно: после включения secure-admin требуется перезапуск всех серверов GlassFish.

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

По умолчанию веб-интерфейс GlassFish слушает порт 8080, админ-интерфейс — 4848.

Откройте:

Сервер GlassFish запущен

Страница входа GlassFish

Войдите с помощью admin и установленного пароля. После входа вы увидите панель управления GlassFish:

Панель GlassFish

Переход в раздел server покажет общую информацию и кнопки управления:

Информация о сервере

Раздел Nodes покажет информацию о нодах кластера:

Информация о нодах

Настройка Nginx как обратного прокси для GlassFish

Чтобы доступ к приложениям был по стандартному порту 80/443, настройте Nginx как reverse proxy.

Установите Nginx:

apt-get install nginx -y

Создайте конфигурацию виртуального хоста:

nano /etc/nginx/conf.d/glassfish.conf

Добавьте:

upstream glassfish {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     glassfish.example.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://glassfish/hello/;
  }
}

Проверьте синтаксис и перезапустите Nginx:

nginx -t
systemctl restart nginx
systemctl status nginx

Если всё настроено верно, ваш сайт станет доступен по адресу http://glassfish.example.com.

Важно: в proxy_pass конечный слэш влияет на поведение маршрутизации. Тестируйте пути приложения.

Безопасность и рекомендации по hardening

Важно уделить внимание безопасности при развёртывании:

  • Запустите GlassFish от непользователя root. Создайте системного пользователя например glassfish и поменяйте User в unit-файле.
  • Разрешите доступ к админ-порту 4848 только из доверенных подсетей (firewall или iptables).
  • Включите HTTPS перед публичным доступом: используйте Certbot для получения сертификата Let’s Encrypt и интеграции с Nginx.
    • Установите certbot: apt-get install certbot python3-certbot-nginx -y
    • Выполните: certbot –nginx -d glassfish.example.com
  • Закройте неиспользуемые порты и ограничьте доступ через firewall (ufw или iptables).
  • Регулярно обновляйте систему и JDK: apt-get update && apt-get upgrade.
  • Включите аудит логов и мониторинг (например, Prometheus + Grafana или ELK).

Альтернативные подходы и масштабирование

  • Использовать Apache httpd вместо Nginx как обратный прокси.
  • Разворачивать GlassFish в контейнере Docker и ставить Nginx/Ingress поверх Kubernetes для оркестрации.
  • Использовать HAProxy перед GlassFish для балансировки нагрузки.
  • Если приложение лёгкое и контейнеризовано, лучше использовать Tomcat/Jetty или облачный PaaS.

Когда этот подход не подходит

  • Для микросервисов и облачных нативных приложений лучше Kubernetes.
  • Если требуется высокая плотность многоплатформенных контейнеров — контейнеризация предпочтительнее.
  • Если у вас нет опыта управления JVM-серверами — рассмотрите управляемые сервисы.

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

  • systemctl status glassfish показывает Active: active (running).
  • Веб-интерфейс по http://your-server-ip:8080 отвечает.
  • Админ-интерфейс доступен по HTTPS: https://your-server-ip:4848 и требует логин.
  • Домен glassfish.example.com корректно резолвится и отдаёт приложение через Nginx.
  • Логи GlassFish не содержат критических ошибок при запуске (проверить /opt/glassfish6/glassfish/domains/domain1/logs/server.log).

Чек-листы по ролям

Администратор:

  • Установить JDK и GlassFish.
  • Создать systemd-сервис и запустить сервис.
  • Настроить firewall и HTTPS.

Операции (Ops):

  • Настроить мониторинг и бэкапы.
  • Регулярные обновления и проверка логов.

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

  • Проверить корректность проксирования путей приложения.
  • Тестировать деплой приложения в домене domain1.

Методология развертывания — краткий план

  1. Установить JDK и unzip.
  2. Скачать и распаковать GlassFish в /opt.
  3. Создать systemd unit, запустить сервис.
  4. Установить админ-пароль и включить secure admin.
  5. Установить Nginx и настроить virtual host.
  6. Настроить HTTPS и firewall.
  7. Тестирование и приёмка.

Частые проблемы и способы устранения

  • GlassFish не стартует: проверьте права доступа в /opt/glassfish6 и лог /opt/glassfish6/glassfish/domains/domain1/logs/server.log.
  • Конфликт порта 8080: проверьте, не занят ли порт другой службой (ss -tulpn | grep 8080).
  • Nginx возвращает 502 Bad Gateway: проверьте, слушает ли GlassFish на 127.0.0.1:8080 и корректен ли upstream.
  • Проблемы с проксированием путей: проверьте trailing slash в proxy_pass.

Краткая памятка (fact box)

  • Порты: HTTP 8080, Admin 4848, Nginx 80/443.
  • Рекомендуемая минимальная JDK: 11.
  • Путь установки: /opt/glassfish6.

Словарь в одну строку

  • GlassFish — сервер приложений Java EE / Jakarta EE.
  • Nginx — высокопроизводительный веб-сервер и обратный прокси.
  • asadmin — CLI-инструмент управления GlassFish.
  • domain — логическая область в GlassFish, содержащая конфигурацию и приложения.
  • reverse proxy — прокси, который принимает внешние запросы и пересылает их внутренним серверам.

Заключение

Поздравляем — вы установили GlassFish и настроили Nginx как обратный прокси на Debian 11. Далее протестируйте доступ к приложениям, настройте HTTPS и мониторинг. Если возникнут вопросы по ошибкам запуска, проксированию или безопасности — уточните подробности окружения, и я помогу с диагностикой.

Важно: после публичного развёртывания обязательно ограничьте доступ к админ-интерфейсу и примените HTTPS.

Сводка шагов для быстрой проверки:

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро