在Linux系统中安装Jetty服务器是一个常见的需求,Jetty作为一个轻量级、高性能的Java Web容器,广泛应用于开发和生产环境,本文将详细介绍在Linux系统上安装Jetty的完整流程,包括环境准备、安装步骤、配置优化及常见问题处理,帮助读者顺利完成部署。

环境准备
在开始安装Jetty之前,需要确保系统满足基本要求,操作系统推荐使用Ubuntu 18.04+、CentOS 7或更高版本,这些系统对Java的支持较为完善,Java运行环境是Jetty运行的必要条件,建议安装OpenJDK 11或更高版本,因为Jetty 9.4.x及以上版本对Java 8+提供了良好支持,可以通过以下命令检查Java版本:
java -version
如果未安装Java,以Ubuntu系统为例,可通过以下命令安装OpenJDK 11:
sudo apt update sudo apt install openjdk-11-jdk
对于CentOS系统,可使用:
sudo yum install java-11-openjdk-devel
安装完成后,还需设置JAVA_HOME环境变量,编辑/etc/profile文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
保存后执行source /etc/profile使配置生效。
下载与安装Jetty
Jetty的安装方式主要有两种:手动安装和包管理器安装,手动安装灵活性更高,推荐用于生产环境,访问Jetty官方下载页面(https://www.eclipse.org/jetty/download.html),选择最新的稳定版本(如Jetty 9.4.48.v20220622),下载tar.gz压缩包,使用wget命令下载:
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.48.v20220622/jetty-distribution-9.4.48.v20220622.tar.gz
下载完成后,解压压缩包到指定目录(如/opt):
sudo tar -zxvf jetty-distribution-9.4.48.v20220622.tar.gz -C /opt
创建软链接以便后续管理:

sudo ln -s /opt/jetty-distribution-9.4.48.v20220622 /opt/jetty
配置Jetty
进入Jetty安装目录的etc目录,主要配置文件包括jetty.xml、jetty-http.xml和jetty-users.xml。jetty.xml是核心配置文件,定义了服务器的端口、连接器等参数,默认情况下,Jetty监听8080端口,如需修改,编辑etc/jetty.xml文件,找到<Call name="addConnector">标签,修改其中的端口配置:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref id="Server"/></Arg>
<Set name="port">8080</Set>
</New>
</Arg>
</Call>
</Configure>
为了增强安全性,建议配置用户认证,编辑etc/jetty-users.xml文件,添加管理员用户:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addUser">
<Arg>admin</Arg>
<Arg>password</Arg>
</Call>
<Set name="admin">role,user</Set>
</Configure>
Jetty支持通过jetty-start.ini文件配置JVM参数,如堆内存大小、垃圾回收策略等,设置最大堆内存为1GB:
# -Xms initial heap size # -Xmx maximum heap size -Xms1g -Xmx1g
创建Web应用部署目录
Jetty默认的Web应用部署目录是webapps,将开发好的WAR包或解压后的Web应用目录放置到webapps下,Jetty会自动检测并部署,部署一个名为myapp的Web应用:
sudo cp /path/to/myapp.war /opt/jetty/webapps/
如果需要手动控制部署,可在etc目录下创建myapp.xml配置文件,指定应用路径和上下文路径:
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="contextPath">/myapp</Set> <Set name="war"><Property name="jetty.home" default="."/>/webapps/myapp.war</Set> </Configure>
启动与停止Jetty
Jetty提供了多种启动方式,最常用的是通过start.ini脚本启动,进入Jetty的bin目录,执行以下命令:
cd /opt/jetty/bin java -jar start.jar
若希望以守护进程方式运行(后台运行),可添加--daemon参数:
java -jar start.jar --daemon
停止Jetty时,使用stop模块,需先生成一个随机密钥:

java -jar start.jar STOP.KEY=stopKey123 STOP.PORT=8085
然后执行停止命令:
java -jar start.jar --stop --stopKey=stopKey123 --stopPort=8085
为方便管理,可创建systemd服务单元文件,编辑/etc/systemd/system/jetty.service,添加以下内容:
[Unit] Description=Jetty Web Server After=network.target [Service] User=jetty Group=jetty ExecStart=/opt/jetty/bin/java -jar /opt/jetty/start.jar ExecStop=/opt/jetty/bin/java -jar /opt/jetty/start.jar --stop --stopKey=stopKey123 --stopPort=8085 PIDFile=/var/run/jetty.pid [Install] WantedBy=multi-user.target
创建jetty用户并设置权限:
sudo useradd -r -s /bin/false jetty sudo chown -R jetty:jetty /opt/jetty
启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable jetty sudo systemctl start jetty
配置优化与安全加固
为提升Jetty性能,可进行以下优化:1. 调整线程池配置,在etc/jetty-threadpool.xml中设置最大线程数;2. 启用HTTP/2支持,需添加jetty-http2-server模块;3. 配置静态资源缓存,优化webdefault.xml,安全方面,建议:1. 修改默认管理端口(8080)为非特权端口(如8081);2. 配置SSL/TLS,生成keystore并启用HTTPS;3. 限制访问IP,通过jetty.xml中的<Set name="host">127.0.0.1</Set>绑定地址。
常见问题处理
- 端口冲突:检查8080端口是否被占用,使用
netstat -tulnp | grep 8080命令,修改Jetty端口或停止占用进程,2. 内存不足:调整start.ini中的JVM堆内存参数,避免设置过大导致系统资源紧张,3. 部署失败:检查WAR包是否完整,日志文件(logs/jetty.log)中的错误信息,确认依赖库是否齐全,4. 权限问题:确保运行Jetty的用户对webapps目录有读写权限,避免因权限不足导致部署失败。
通过以上步骤,即可在Linux系统上成功安装并运行Jetty服务器,根据实际需求调整配置参数,结合日志监控和性能调优,可确保Jetty稳定高效地运行。
















