GlassFish是由Eclipse开发的Java EE平台免费开源实现。它是全球首个Java EE平台实现,提供轻量级应用服务器,允许您部署多个基于Java的应用程序。GlassFish支持多种Java应用技术,如Enterprise JavaBeans、JPA、JavaServer Faces、JMS等。

GlassFish是开发者开发和部署基于Java应用程序的最佳选择之一。它允许开发者以便捷的方式开发企业应用,并具备可扩展架构。GlassFish项目最初由Sun Microsystems发起。它采用两种不同的免费许可证——通用开发和分发许可证(CDDL)以及GNU通用公共许可证(GPL)。

在本指南中,您将按照分步流程在Debian 12上安装GlassFish应用服务器,同时配置Nginx作为GlassFish的反向代理。

前提条件

开始之前,请确保您具备以下条件:

  • 一台至少4GB内存的Debian 12服务器。
  • 一个具有sudo权限的非root用户。

安装Java OpenJDK

GlassFish是用于部署Java应用程序的应用服务器。要安装GlassFish,您必须先在Debian系统上安装Java。目前,Debian仓库提供了Java OpenJDK 17,与最新版本的GlassFish兼容。

首先,使用以下命令更新和刷新您的Debian仓库。

sudo apt update
Debian 12安装GlassFish应用服务器及Nginx反向代理

仓库更新后,执行以下命令安装default-jdk包。通过安装default-jdk包,您将安装Java OpenJDK 17

sudo apt install default-jdk

输入y继续安装。

Debian 12安装GlassFish应用服务器及Nginx反向代理

安装完成后,使用以下命令验证Java版本。您应该能看到Java OpenJDK 17已安装。

java -version
Debian 12安装GlassFish应用服务器及Nginx反向代理

系统环境配置

安装Java OpenJDK后,下一步是通过安装wget和unzip等额外包、创建新的glassfish系统用户以及配置JAVA_HOME环境变量来设置Debian系统。

首先,执行以下apt命令安装unzip和wget包。

sudo apt install unzip wget -y
Debian 12安装GlassFish应用服务器及Nginx反向代理

接下来,运行以下命令创建新的系统用户glassfish。此用户将用于运行GlassFish安装,安装目录位于/opt/glassfish

sudo useradd -M -d /opt/glassfish -U -s /bin/false glassfish

接下来,使用nano编辑器创建新的bash脚本/etc/profile.d/java.sh

sudo nano /etc/profile.d/java.sh

添加以下配置以设置JAVA_HOME环境变量,并将Java二进制路径添加到系统PATH中。

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

完成后保存并关闭文件。

现在,使用source命令加载/etc/profile.d/java.sh中的新环境变量。

source /etc/profile.d/java.sh

最后,执行以下命令验证系统PATHJAVA_HOME环境变量。

echo $JAVA_HOME
echo $PATH

如果一切正常,您应该能看到JAVA_HOME路径配置为目录/usr/lib/jvm/java-17-openjdk-amd64,Java bin目录已添加到系统PATH中。

Debian 12安装GlassFish应用服务器及Nginx反向代理

下载GlassFish二进制包

Java OpenJDK已安装且Debian系统已准备就绪,现在可以下载并安装GlassFish。继续之前,请查看GlassFish下载页面获取最新版本。目前最新版本为v7.0.10。

进入/tmp目录,通过以下wget命令下载GlassFish二进制包。下载完成后,您应该能看到文件glassfish-7.0.10.zip

cd /tmp
wget https://download.eclipse.org/ee4j/glassfish/glassfish-7.0.10.zip

通过unzip命令将glassfish-7.0.10.zip文件解压到/opt目录。GlassFish包将被解压到/opt/glassfish7目录。

unzip glassfish-7.0.10.zip -d /opt

最后,将解压目录从/opt/glassfish7重命名为/opt/glassfish。然后,将/opt/glassfish目录的所有权更改为用户glassfish

mv /opt/glassfish7 /opt/glassfish
sudo chown -R glassfish:glassfish /opt/glassfish

将GlassFish配置为Systemd服务

下载GlassFish二进制包后,您将创建一个新的systemd服务文件来运行GlassFish。这允许您通过systemctl工具管理GlassFish,并将其作为systemd服务在后台运行。

要将GlassFish作为systemd服务运行,运行以下nano编辑器命令创建新文件/etc/systemd/system/glassfish.service

sudo nano /etc/systemd/system/glassfish.service

在文件中插入以下配置。

[Unit]
Description = GlassFish Server v7
After = syslog.target network.target

[Service]
User=glassfish
ExecStart=/opt/glassfish/bin/asadmin start-domain
ExecReload=/opt/glassfish/bin/asadmin restart-domain
ExecStop=/opt/glassfish/bin/asadmin stop-domain
Type = forking

[Install]
WantedBy = multi-user.target

完成后保存并关闭文件。

现在,运行以下systemctl命令重新加载systemd管理器并应用更改。

sudo systemctl daemon-reload

systemd管理器重新加载后,使用以下命令启动并启用glassfish服务。

sudo systemctl start glassfish
sudo systemctl enable glassfish
Debian 12安装GlassFish应用服务器及Nginx反向代理

最后,使用以下命令验证glassfish服务状态。

sudo systemctl status glassfish

如果一切正常,您应该能看到glassfish状态为active (running),并且已enabled

Debian 12安装GlassFish应用服务器及Nginx反向代理

设置用户及安全管理

此时,GlassFish已启动运行。现在您将通过更改Admin Console的默认密码并启用Secure Admin来配置GlassFish安装。这些操作可以通过/opt/glassfish/bin目录中的asadmin命令完成。

执行以下asadmin命令行来更改GlassFish安装的管理员密码。

sudo -u glassfish /opt/glassfish/bin/asadmin --port 4848 change-admin-password

在过程中,您将被询问以下内容:

  • 输入GlassFish的默认管理员用户名。
  • 当询问密码时按ENTER键。GlassFish的默认管理员用户没有密码。
  • 现在输入GlassFish的新管理员密码并重复确认。

过程完成后,您应该会看到类似以下的消息:

Debian 12安装GlassFish应用服务器及Nginx反向代理

接下来,运行以下asadmin命令启用GlassFish安装的安全管理。

Secure Admin本质上是通过SSL启用域管理服务器(DAS)、远程实例和管理客户端(包括asadmin工具、管理控制台和REST客户端)之间的安全通信。

sudo -u glassfish /opt/glassfish/bin/asadmin --port 4848 enable-secure-admin

输入您的GlassFish管理员用户名和密码,然后按Enter。完成后,将显示以下输出。

Debian 12安装GlassFish应用服务器及Nginx反向代理

启用Secure Admin后,运行以下命令重启glassfish服务以应用更改。

sudo systemctl restart glassfish

现在,打开浏览器并访问服务器IP地址加端口8080,例如http://192.168.5.15:8080/。如果GlassFish安装成功,您应该看到以下页面,确认GlassFish正在运行。

Debian 12安装GlassFish应用服务器及Nginx反向代理

最后,打开新标签页并访问同一服务器IP地址加端口4848(即https://192.168.5.15:4848/)来访问GlassFish管理页面。在浏览器中接受SSL/TLS证书,如果成功,您应该看到以下GlassFish管理登录页面。

Debian 12安装GlassFish应用服务器及Nginx反向代理

安装Nginx作为反向代理

在本指南中,您将使用Nginx作为反向代理运行GlassFish。现在,您将在Debian机器上安装Nginx并为GlassFish创建新的服务器块配置。在此示例中,我们将使用本地域名glassfish.howtoforge.local

首先,使用以下apt命令在Debian系统上安装Nginx。输入y继续安装。

sudo apt install nginx
Debian 12安装GlassFish应用服务器及Nginx反向代理

Nginx安装完成后,使用以下nano编辑器命令创建新的服务器块配置/etc/nginx/sites-available/glassfish

sudo nano /etc/nginx/sites-available/glassfish

插入以下配置,并确保将server_name参数更改为您的本地域名。

upstream glassfish {
    server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
    listen          80;
    server_name     glassfish.howtoforge.local;

    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/;
    }
}

完成后保存并退出文件。

接下来,运行以下命令激活服务器块配置glassfish,并验证Nginx语法以确保配置正确。

sudo ln -s /etc/nginx/sites-available/glassfish /etc/nginx/sites-enabled/
sudo nginx -t

如果Nginx语法正确,您应该看到输出test is successful - syntax is ok

Debian 12安装GlassFish应用服务器及Nginx反向代理

现在您可以重启Nginx服务并应用更改。然后验证Nginx服务以确保服务正在运行。

sudo systemctl restart nginx
sudo systemctl status nginx

在以下输出中,您应该看到Nginx服务正在运行。

Debian 12安装GlassFish应用服务器及Nginx反向代理

访问GlassFish安装

在最后一节中,您将从客户端机器访问GlassFish安装。您可以使用任何操作系统作为客户端机器。

编辑本地机器上的/etc/hosts文件并插入以下配置。确保更改服务器IP地址和本地域名。如果您使用Windows客户端,请以管理员身份修改C:\Windows\System32\drivers\etc\hosts文件。

192.168.5.15    glassfish.howtoforge.local

现在回到浏览器,访问GlassFish安装的域名,例如http://glassfish.howtoforge.local/。如果Nginx反向代理配置成功,您应该看到如下默认的GlassFish首页。

Debian 12安装GlassFish应用服务器及Nginx反向代理

接下来,访问GlassFish管理页面,端口4848(即https://glassfish.howtoforge.local:4848/)。在登录页面输入管理员用户名和密码,然后点击Login

Debian 12安装GlassFish应用服务器及Nginx反向代理

如果安装成功,您应该看到以下GlassFish管理仪表盘:

Debian 12安装GlassFish应用服务器及Nginx反向代理

现在点击Server菜单检查GlassFish安装的状态。在此示例中,您应该看到GlassFish 7.0已安装,状态为Running

Debian 12安装GlassFish应用服务器及Nginx反向代理

从这里开始,您现在可以管理您的GlassFish应用服务器了。

总结

综上所述,您已按照分步说明成功在Debian 12服务器上安装了GlassFish应用服务器。您已使用Java OpenJDK 17和Nginx作为反向代理安装了GlassFish,并通过更改默认管理员密码和启用Secure Admin来保障GlassFish安全。现在您可以开始使用GlassFish部署您的应用程序了。