如何在 Ubuntu 22.04 上安装 GlassFish JAVA 应用服务器
在此页
- 先决条件
- 安装Java JDK
- 下载 Glassfish 服务器
- 为 Glassfish 创建一个 Systemd 服务文件
- 为 Glassfish 设置密码并启用安全登录
- 将 Nginx 配置为 Glassfish 的反向代理
- 配置 UFW 防火墙
- 访问 Glassfish 网络界面
- 结论
Glassfish 是一个免费的开源服务器,用于部署基于 Java 的应用程序。它允许开发人员开发方便且可扩展的企业应用程序。 glassfish 项目由 Sun Microsystem 发起,现在由 Oracle Corporation 赞助。它有两个自由软件许可证:通用开发和分发许可证和 GNU 通用公共许可证。
在本文中,我们将向您展示如何在 Ubuntu 22.04 上安装带有 Nginx 作为反向代理的 Glassfish 服务器。
先决条件
- 一台运行 Ubuntu 22.04 的服务器。
- 用您的服务器 IP 指向的有效域名。
- 在服务器上配置了根密码。
安装 Java JDK
Glassfish 是一个基于 Java 的应用程序。所以你需要在你的服务器上安装 Java JDK。您可以通过运行以下命令来安装它:
apt-get install default-jdk unzip -y
安装 Java 后,使用以下命令验证 Java 版本:
java --version
您将在以下输出中获得 Java 版本:
openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
下载 Glassfish 服务器
首先,您需要从其官方下载页面下载 Glassfish。您可以使用以下命令下载它:
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 Thu 2022-05-12 15:39:16 UTC; 4s ago
Process: 5313 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC>
Main PID: 5326 (java)
Tasks: 92 (limit: 2292)
Memory: 289.3M
CPU: 12.563s
CGroup: /system.slice/glassfish.service
??5326 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp>
May 12 15:39:04 ubuntu systemd[1]: Starting GlassFish Server v6.1.0...
May 12 15:39:16 ubuntu java[5313]: Waiting for domain1 to start ..........
May 12 15:39:16 ubuntu java[5313]: Successfully started the domain : domain1
May 12 15:39:16 ubuntu java[5313]: domain Location: /opt/glassfish6/glassfish/domains/domain1
May 12 15:39:16 ubuntu java[5313]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log
May 12 15:39:16 ubuntu java[5313]: Admin Port: 4848
May 12 15:39:16 ubuntu java[5313]: Command start-domain executed successfully.
May 12 15:39:16 ubuntu 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
提供 admin 作为用户名,然后按 Enter 键。您将被要求提供密码:
Enter the admin password>
只需按 Enter 键而不输入任何内容。您将被要求设置一个新密码:
Enter the new admin password>
Enter the new admin password again>
提供您的新密码,然后按 Enter 键设置密码。
Command change-admin-password executed successfully.
接下来,您还需要启用安全登录。您可以使用以下命令启用它:
/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin
您将被要求提供管理员用户和密码以启用安全登录。
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
配置 Nginx 作为 Glassfish 的反向代理
接下来,您需要安装和配置 Nginx 作为 Glassfish 的反向代理。首先,使用以下命令安装 Nginx 服务器:
apt-get install nginx -y
安装 Nginx 后,创建一个 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 Thu 2022-05-12 16:09:38 UTC; 6s ago
Docs: man:nginx(8)
Process: 5687 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 5689 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 5690 (nginx)
Tasks: 2 (limit: 2292)
Memory: 2.6M
CPU: 39ms
CGroup: /system.slice/nginx.service
??5690 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??5691 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
May 12 16:09:38 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
May 12 16:09:38 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
配置 UFW 防火墙
出于安全原因,建议在您的系统中安装和配置 UFW 防火墙。首先,使用以下命令安装 UFW 防火墙:
apt install ufw -y
安装 UFW 防火墙后,使用以下命令允许所有必需的端口和服务:
ufw allow 'Nginx Full'
ufw allow OpenSSH
ufw allow 4848/tcp
ufw allow 8080/tcp
接下来,启用 UFW 防火墙在系统重启后启动:
ufw enable
您现在可以使用以下命令检查 UFW 防火墙的状态:
ufw status
您将获得以下输出:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
8080/tcp ALLOW Anywhere
4848/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
4848/tcp (v6) ALLOW Anywhere (v6)
访问 Glassfish Web 界面
您现在可以使用 URL http://glassfish.example.com 访问 Glassfish。您应该会看到以下页面:

要访问 Glassfish 管理界面,请输入 URL https://your-server-ip:4848。您将被重定向到 Glassfish 登录页面:

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

单击左窗格中的服务器。您应该看到一般信息页面。

在这里,您可以启动、停止和监视 Glassfish 服务器。
单击左窗格中的节点。您应该会在下一页看到 Glassfish 节点。

单击左窗格中的应用程序。您应该在下一页上看到所有已部署的应用程序。

结论
在这篇文章中,我们解释了如何在 Ubuntu 22.04 上安装带有 Nginx 作为反向代理的 Glassfish 服务器。您现在可以开始使用 Glassfish 服务器部署 Java 应用程序。如果您有任何问题,请随时问我。