如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11 上使用 Nginx 作为反向代理安装 GlassFish Java Server

发表 admin at 2025年2月28日
类别
  • 未分类
标签

本教程适用于这些操作系统版本

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

在此页

  1. 先决条件
  2. 安装Java
  3. 下载 Glassfish
  4. 为 Glassfish 创建一个 Systemd 服务文件
  5. 设置 Glassfish 管理员密码
  6. 访问 GlassFish Web 界面
  7. 将 Nginx 配置为 Glassfish 的反向代理
  8. 结论

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 的应用程序。如果您有任何问题,请随时问我。

©2015-2025 Norria support@norria.com