Ubuntu 上部署 Jenkins 的网络设置
一 网络与防火墙基础
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [10.0.2.15/24]
gateway4: 10.0.2.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan applysudo nmcli con modify "Wired connection 1" ipv4.dns "8.8.8.8,8.8.4.4" && sudo nmcli con up "Wired connection 1"。sudo ufw allow 8080/tcp
sudo ufw allow 50000/tcp
sudo ufw reload
sudo ufw allow OpenSSH)以免被锁。二 反向代理与 HTTPS
server {
listen 80;
server_name jenkins.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name jenkins.example.com;
ssl_certificate /etc/letsencrypt/live/jenkins.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem;
access_log /var/log/nginx/jenkins.access.log;
error_log /var/log/nginx/jenkins.error.log;
location / {
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;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://jenkins.example.com;
}
}
sudo nginx -t && sudo systemctl reload nginxsudo certbot certonly --nginx -d jenkins.example.com三 容器化部署端口与网络
version: '3.8'
services:
jenkins:
image: jenkinsci/blueocean:lts
restart: always
ports:
- "8080:8080"
- "50000:50000"
environment:
TZ: Asia/Shanghai
volumes:
- jenkins_data:/var/jenkins_home
volumes:
jenkins_data:
四 验证与常见问题
curl -I http://localhost:8080curl -I http://<服务器IP>:8080curl -I https://jenkins.example.comproxy_pass 与 proxy_redirect,确保与 Jenkins URL 一致,且头部包含 X-Forwarded-For/Proto/Host。