如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server
本教程适用于这些操作系统版本
- Debian 11(Bullseye)
- Debian 10(Buster)
在此页
- 先决条件
- 安装Java
- 下载 Glassfish
- 为 Glassfish 创建一个 Systemd 服务文件
- 设置 Glassfish 管理员密码
- 访问 GlassFish Web 界面
- 将 Nginx 配置为 Glassfish 的反向代理
- 结论
GlassFish 是用于部署 Java 应用程序的开源应用程序服务器。它支持不同的基于 Java 的技术,包括 JPA、JavaServer Faces、JMS、RMI 以及许多其他基于 Java 的技术。它提供了基于 Web 和命令行的界面来管理 Java 应用程序及其组件。 GlassFish 允许您创建可移植和可扩展的应用程序,这些应用程序可以轻松地与遗留技术集成。
在本教程中,我将向您展示如何在 Debian 11 上安装带有 Nginx 作为反向代理的 Glassfish 服务器。
先决条件
- 运行 Debian 11 的服务器。
- 用您的服务器 IP 指向的有效域名。
- 在服务器上配置了根密码。
安装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)
完成后,您可以继续下一步。
下载玻璃鱼
首先,您需要从 Eclipse 网站下载最新版本的 Glassfish。您可以使用 wget 命令下载它,如下所示:
wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip
下载完成后,将下载的文件解压到 /opt 目录:
unzip glassfish-6.1.0.zip -d /opt/
完成后,您可以继续下一步。
为 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。您将获得以下输出:
Command change-admin-password executed successfully.
接下来,还建议在 Glassfish 上启用 HTTPS。您可以通过运行以下命令来完成此操作:
/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 Web 界面
此时,Glassfish 已安装并运行。默认情况下,Glassfish Web 界面侦听端口 8080,而管理界面侦听端口 4848。首先,使用 URL http://your-server-ip:8080 访问 Glassfish Web 界面。您应该会看到以下页面:

接下来,使用 URL https://your-server-ip:4848 访问 Glassfish 管理界面。您将被重定向到 Glassfish 登录页面:

提供您的管理员用户名和密码,然后单击“登录”按钮。您应该会在下一页看到 Glassfish 管理界面:

单击左窗格中的服务器,您应该会看到以下屏幕:

从这里,您可以重新启动、停止和查看 Glassfish 日志。
单击左侧窗格中的节点,您应该会在以下屏幕中看到 Glassfish 节点信息:

配置 Nginx 作为 Glassfish 的反向代理
将 Nginx 配置为访问 Glassfish Web 界面的反向代理是个好主意。因此,您可以在不使用端口 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 Web 界面。您现在可以使用 URL http://glassfish.example.com 访问 Glassfish Web 界面。
结论
恭喜!您已经在 Debian 11 上成功安装了带有 Nginx 作为反向代理的 Glassfish 服务器。您现在可以开始在 Glassfish 服务器上部署基于 Java 的应用程序。如果您有任何问题,请随时问我。