Как установить Java-сервер GlassFish с Nginx в качестве обратного прокси-сервера в Debian 11
Это руководство существует для этих версий ОС
- Debian 11 (Bullseye)
- Debian 10 (Buster)
На этой странице
- Предпосылки
- Установить Java
- Скачать Glassfish
- Создание служебного файла Systemd для Glassfish
- Установить пароль администратора Glassfish
- Доступ к веб-интерфейсу GlassFish
- Настройка Nginx в качестве обратного прокси-сервера для Glassfish
- Заключение
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. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.