在 Linux 系统上使用 Jetty 启动 Web 项目可以分为以下几种方式,我将详细介绍每种方法的步骤:
方法1:使用嵌入式 Jetty(推荐开发使用)
适合开发环境快速启动,无需安装完整 Jetty 服务器。
1. 添加 Maven 依赖
<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-server</artifactId>
    <version>11.0.15</version>
</dependency>
<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-webapp</artifactId>
    <version>11.0.15</version>
</dependency>
2. 编写启动类
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class JettyEmbeddedRunner {
    public static void main(String[] args) throws Exception {
        Server server = new Server(8080); // 端口
        
        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath("/");       // 上下文路径
        webapp.setWar("path/to/your/webapp.war"); // WAR包路径
        // 或直接指向项目目录(开发时)
        // webapp.setResourceBase("src/main/webapp");
        
        server.setHandler(webapp);
        server.start();
        server.join();
    }
}
3. 运行
java -cp your-project.jar JettyEmbeddedRunner
方法2:使用独立 Jetty 服务器(生产推荐)
适合生产环境部署。
1. 下载 Jetty
wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/11.0.15/jetty-home-11.0.15.tar.gz
tar -xvf jetty-home-11.0.15.tar.gz
cd jetty-home-11.0.15
2. 部署 WAR 包
cp /path/to/your-webapp.war ./webapps/
3. 启动 Jetty
# 默认端口8080
java -jar start.jar
# 指定端口
java -Djetty.http.port=9090 -jar start.jar
4. 访问应用
http://your-server-ip:8080/your-webapp-context
方法3:作为系统服务运行(生产环境)
1. 创建 systemd 服务文件
sudo vi /etc/systemd/system/jetty.service
内容:
[Unit]
Description=Jetty Server
After=network.target
[Service]
User=jetty
WorkingDirectory=/opt/jetty
ExecStart=/usr/bin/java -jar /opt/jetty/start.jar
Restart=on-failure
[Install]
WantedBy=multi-user.target
2. 启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable jetty
sudo systemctl start jetty
3. 查看状态
sudo systemctl status jetty
关键配置说明
- 
端口修改 
 编辑jetty-home/start.ini或通过命令行参数:java -Djetty.http.port=9090 -jar start.jar
- 
上下文路径 
 默认情况下:- webapps/foo.war→ 访问路径- /foo
- 如需根路径,重命名 WAR 为 ROOT.war
 
- 
JVM 参数 
 在start.ini中添加:--exec -Xms512m -Xmx1024m
- 
HTTPS 配置 
 在start.ini中启用ssl模块,并配置证书:--module=ssl jetty.ssl.port=8443 jetty.ssl.keyStorePath=/path/to/keystore jetty.ssl.keyStorePassword=yourpassword
常见问题解决
- 
端口冲突 
 检查端口占用:netstat -tulnp | grep 8080
- 
权限问题 
 确保 Jetty 目录有正确权限:chown -R jetty:jetty /opt/jetty
- 
日志查看 
 Jetty 日志默认在:tail -f /opt/jetty/logs/*.log
- 
内存不足 
 调整 JVM 内存:java -Xms1g -Xmx2g -jar start.jar
各方式对比
| 方式 | 适用场景 | 优点 | 缺点 | 
|---|---|---|---|
| 嵌入式 Jetty | 开发/测试 | 无需安装,快速启动 | 不适合高并发生产环境 | 
| 独立 Jetty | 生产环境 | 稳定,支持热部署 | 需要单独安装 Jetty | 
| Systemd 服务 | 生产环境 | 自动重启,开机启动 | 配置稍复杂 | 
根据您的需求选择合适的方式,开发推荐嵌入式,生产推荐独立部署+Systemd服务。
 
                   
                   
                   
                   
                             
                     
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   1285
					1285
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            