温馨提示×

debian jenkins怎么用nginx

小樊
45
2026-10-16 17:51:53
栏目: 智能运维

下面按“在 Debian 上用 Nginx 反向代理 Jenkins”这个最常见场景来讲,也是生产环境推荐做法。


一、前提条件

假设你已经:

  • Debian 系统(11 / 12 均可)
  • 已安装 Jenkins(默认端口 8080)
  • 已安装 Nginx

如果还没装 Jenkins:

sudo apt update
sudo apt install jenkins

如果还没装 Nginx:

sudo apt install nginx

二、Nginx 反向代理 Jenkins(核心)

1️⃣ 创建 Nginx 配置文件

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

内容如下(最常用模板):

server {
    listen 80;
    server_name jenkins.example.com;   # 改成你的域名或服务器IP

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Jenkins WebSocket 支持(必须)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

2️⃣ 启用站点

sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

3️⃣ 修改 Jenkins 监听地址(重要)

Jenkins 默认只监听 localhost,需要确认:

sudo nano /etc/default/jenkins

确保有:

JENKINS_ARGS="--httpListenAddress=127.0.0.1 --httpPort=8080"

重启 Jenkins:

sudo systemctl restart jenkins

三、访问 Jenkins

现在你可以直接访问:

http://jenkins.example.com

而不是:

http://服务器IP:8080

四、配置 Jenkins 识别反向代理(可选但推荐)

登录 Jenkins →
Manage Jenkins → System

设置:

  • Jenkins URL:http://jenkins.example.com/

如果是 HTTPS,填 https://


五、HTTPS(强烈推荐)

使用 Let’s Encrypt

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d jenkins.example.com

Certbot 会自动改 Nginx 配置并启用 HTTPS。


六、常见问题

❌ 页面能打开但构建卡住 / 终端无输出

原因:WebSocket 未转发
✅ 确保有:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

❌ 502 Bad Gateway

检查:

systemctl status jenkins
curl http://127.0.0.1:8080

❌ 静态资源加载异常

确保 Jenkins URL 和 Nginx server_name 一致。


七、最小可用总结

✅ Debian
✅ Jenkins(8080)
✅ Nginx 反代
✅ WebSocket 支持
✅ HTTPS(生产必须)


如果你需要:

  • Jenkins + Nginx + Docker
  • Nginx 多 Jenkins 实例
  • 内网穿透 / 鉴权 / 限流

告诉我你的使用场景,我可以直接给你完整配置。

0 踩