Поиск по сайту:

Как установить Java-сервер GlassFish с Nginx в качестве обратного прокси-сервера в Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

На этой странице

  1. Предпосылки
  2. Установить Java
  3. Скачать Glassfish
  4. Создание служебного файла Systemd для Glassfish
  5. Установить пароль администратора Glassfish
  6. Доступ к веб-интерфейсу GlassFish
  7. Настройка Nginx в качестве обратного прокси-сервера для Glassfish
  8. Заключение

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

В этом руководстве я покажу вам, как установить сервер Glassfish с Nginx в качестве обратного прокси-сервера в Debian 11.

Предпосылки

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

Установить Java

Glassfish — это прикладное программное обеспечение на основе Java, поэтому на вашем сервере должна быть установлена Java. Если он не установлен, вы можете установить его, выполнив следующую команду:

apt-get install default-jdk unzip -y

После установки Java вы можете проверить установку 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 с веб-сайта Eclipse. Вы можете загрузить его с помощью команды wget, как показано ниже:

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

После завершения загрузки извлеките загруженный файл в каталог /opt:

unzip glassfish-6.1.0.zip -d /opt/

Как только вы закончите, вы можете перейти к следующему шагу.

Создайте служебный файл Systemd для Glassfish

Далее вам нужно будет создать файл службы systemd для управления службой Glassfish. Вы можете создать его с помощью следующей команды:

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

Затем запустите службу Glassfish и включите ее запуск при перезагрузке системы:

systemctl start glassfish
systemctl enable glassfish

Вы также можете проверить службу Glassfish с помощью следующей команды:

systemctl status glassfish

Вы получите следующий вывод:

? glassfish.service - GlassFish Server v6.1.0
     Loaded: loaded (/lib/systemd/system/glassfish.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-07 04:56:16 UTC; 8s ago
    Process: 6018 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC>
   Main PID: 6037 (java)
      Tasks: 91 (limit: 4679)
     Memory: 343.0M
        CPU: 13.299s
     CGroup: /system.slice/glassfish.service
             ??6037 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp>

Nov 07 04:56:10 debian11 systemd[1]: Starting GlassFish Server v6.1.0...
Nov 07 04:56:16 debian11 java[6018]: Waiting for domain1 to start .....
Nov 07 04:56:16 debian11 java[6018]: Successfully started the domain : domain1
Nov 07 04:56:16 debian11 java[6018]: domain  Location: /opt/glassfish6/glassfish/domains/domain1
Nov 07 04:56:16 debian11 java[6018]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log
Nov 07 04:56:16 debian11 java[6018]: Admin Port: 4848
Nov 07 04:56:16 debian11 java[6018]: Command start-domain executed successfully.
Nov 07 04:56:16 debian11 systemd[1]: Started GlassFish Server v6.1.0.

Как только вы закончите, вы можете перейти к следующему шагу.

Установить пароль администратора Glassfish

По умолчанию Glassfish доступен без пароля. Поэтому рекомендуется защитить его, установив пароль администратора. Вы можете сделать это, выполнив следующую команду:

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

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

Enter admin user name [default: admin]>admin

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

Enter the admin password> 

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

Введите новый пароль администратора> Введите новый пароль администратора еще раз>

Установите безопасный пароль и нажмите Enter. Вы получите следующий вывод:

Command change-admin-password executed successfully.

Далее также рекомендуется включить HTTPS на Glassfish. Вы можете сделать это, выполнив следующую команду:

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

Вам будет предложено ввести имя пользователя и пароль администратора для включения HTTPS:

Enter admin user name>  admin
Enter admin password for user "admin"> 
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

Наконец, перезапустите службу Glassfish, чтобы применить изменения:

systemctl restart glassfish

Как только вы закончите, вы можете перейти к следующему шагу.

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

На данный момент Glassfish установлен и работает. По умолчанию веб-интерфейс Glassfish прослушивает порт 8080, а интерфейс администратора прослушивает порт 4848. Сначала войдите в веб-интерфейс Glassfish, используя URL-адрес http://your-server-ip:8080. Вы должны увидеть следующую страницу:

Затем войдите в интерфейс администратора Glassfish, используя URL-адрес https://your-server-ip:4848. Вы будете перенаправлены на страницу входа в систему Glassfish:

Укажите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть интерфейс администратора Glassfish на следующей странице:

Нажмите на сервер в левой панели, вы должны увидеть следующий экран:

Отсюда вы можете перезапускать, останавливать и просматривать журналы Glassfish.

Нажмите на узлы на левой панели, вы должны увидеть информацию об узле Glassfish на следующем экране:

Настройте Nginx в качестве обратного прокси для Glassfish

Рекомендуется настроить Nginx в качестве обратного прокси-сервера для доступа к веб-интерфейсу Glassfish. Таким образом, вы можете получить доступ к своему приложению, не используя порт 8080.

Для этого сначала установите пакет Nginx с помощью следующей команды:

apt-get install nginx -y

После установки создайте файл конфигурации виртуального хоста Nginx, используя следующую команду:

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

Если все в порядке, вы получите следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

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

systemctl status nginx

Вы должны получить следующий результат:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-07 05:02:58 UTC; 22s ago
       Docs: man:nginx(8)
    Process: 6790 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 6791 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 6873 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 5.1M
        CPU: 53ms
     CGroup: /system.slice/nginx.service
             ??6873 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??6875 nginx: worker process
             ??6876 nginx: worker process

Nov 07 05:02:58 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 07 05:02:58 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

На этом этапе Nginx установлен и настроен для обслуживания веб-интерфейса Glassfish. Теперь вы можете получить доступ к веб-интерфейсу Glassfish, используя URL-адрес http://glassfish.example.com.

Заключение

Поздравляем! вы успешно установили сервер Glassfish с Nginx в качестве обратного прокси-сервера в Debian 11. Теперь вы можете приступить к развертыванию своего Java-приложения на сервере Glassfish. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.