在 CentOS 上把 Jenkins 通过 Nginx 做反向代理,通常步骤如下(假设 Jenkins 已安装并运行在 8080 端口)。
8080)检查 Jenkins 是否在运行:
systemctl status jenkins
yum install -y nginx
systemctl enable nginx
systemctl start nginx
vi /etc/nginx/conf.d/jenkins.conf
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;
# WebSocket 支持(Jenkins 必需)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
nginx -t
systemctl restart nginx
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
进入 Jenkins: Manage Jenkins → System
http://jenkins.example.com/
(与你 Nginx 的 server_name 一致)
使用 Let’s Encrypt:
yum install -y certbot python3-certbot-nginx
certbot --nginx -d jenkins.example.com
✅ 确保 Nginx 配置了 WebSocket(Upgrade / Connection)
Jenkins 中勾选: Manage Jenkins → Security → 允许代理兼容
如果你需要:
可以继续告诉我你的具体场景。