如何官方部署Jetty 11独立实例?遇发行版及Debian包缺失问题
Jetty 11官方并未提供Debian专属安装包,推荐通过独立发行包手动部署,步骤如下:
1. 准备Java 17环境
Jetty 11要求Java 17作为运行环境,先在Debian 11上安装OpenJDK 17:
apt update && apt install -y openjdk-17-jre
验证Java版本:
java -version
输出需显示openjdk version "17.x.x"。
2. 下载并解压Jetty独立发行包
Jetty官方稳定版发行包可从官方渠道获取,下载对应11.0.15版本的tar.gz包后,解压到目标目录(如/opt/jetty):
mkdir -p /opt/jetty tar -xzf jetty-distribution-11.0.15.tar.gz -C /opt/jetty --strip-components=1
3. 创建专用运行用户
为安全起见,不要以root用户运行Jetty,创建专用系统用户:
useradd -r -m -U -d /opt/jetty -s /usr/sbin/nologin jetty chown -R jetty:jetty /opt/jetty
4. 配置Jetty Base目录(官方推荐)
Jetty官方建议使用独立的jetty.base目录存放应用和自定义配置,避免修改核心发行包目录,方便后续升级:
mkdir -p /opt/jetty-base /opt/jetty/bin/jetty.sh configure /opt/jetty-base
此操作会将默认配置复制到/opt/jetty-base,后续所有配置和应用都放在该目录下。
5. 部署Web应用
将你的Web应用WAR包复制到/opt/jetty-base/webapps目录,Jetty会自动识别并部署:
cp your-app.war /opt/jetty-base/webapps/
若需自定义部署规则,可编辑/opt/jetty-base/etc/jetty-webapp.xml调整配置。
6. 配置Systemd服务
创建Systemd服务文件以管理Jetty进程,方便开机自启和状态管理:
创建/etc/systemd/system/jetty.service文件,内容如下:
[Unit] Description=Jetty 11 Web Server After=network.target [Service] User=jetty Group=jetty WorkingDirectory=/opt/jetty-base Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" Environment="JETTY_HOME=/opt/jetty" Environment="JETTY_BASE=/opt/jetty-base" ExecStart=/opt/jetty/bin/jetty.sh start ExecStop=/opt/jetty/bin/jetty.sh stop ExecReload=/opt/jetty/bin/jetty.sh reload Restart=on-failure [Install] WantedBy=multi-user.target
然后重载Systemd并启动服务:
systemctl daemon-reload systemctl start jetty systemctl enable jetty
7. 验证部署
访问服务器的8080端口(默认端口),确认Web应用正常运行:
curl http://localhost:8080
注:Maven仓库中的
jetty-distribution实际上包含Jetty 11的稳定版本,若需通过Maven获取,可直接拉取对应版本的构件包,解压后按上述步骤部署即可。
内容的提问来源于stack exchange,提问作者JCvanDamme

