Jenkins CI/CD自动化发布跨境网站更新新手实操教程

使用 Jenkins 实现跨境网站的 CI/CD 自动化发布,核心思路是:在代码仓库(如 GitHub)配置 Webhook,每次提交代码后自动触发 Jenkins 流水线,拉取最新代码、运行构建、再将制品上传至海外服务器并重启服务。
这套流程可以消除手动连接海外服务器的延迟,让更新在几分钟内完成。
本文以宝塔面板 + Jenkins + 泽御云香港云服务器为例,零基础读者按步骤操作即可落地。

环境准备:你需要哪些条件

在动手配置之前,请先确认以下三样东西已就绪:

  1. 一台能连通内外网的 Jenkins 服务器(建议使用 2GB 以上内存的云服务器,例如泽御云香港节点,拉取 GitHub 代码更快)
  2. 一台目标跨境服务器(运行你的网站,本文假设系统为 CentOS 7+,已安装宝塔面板或 Nginx)
  3. 一个 Git 仓库(托管你的网站代码,推荐 GitHub 或 Gitee)

如果你还没有 Jenkins,可以登录服务器执行以下命令安装(以 CentOS 为例):

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum install -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins

安装完成后访问 http:
//你的服务器IP:
8080

按提示获取初始密码(cat /var/lib/jenkins/secrets/initialAdminPassword)并安装推荐插件。

配置 Jenkins Pipeline:从拉取代码到远程部署

登录 Jenkins 后,点击“新建任务” -> “Pipeline”,命名为 cross-border-deploy
然后在流水线定义中选择“Pipeline script”,粘贴以下脚本(按你的信息替换仓库地址、服务器 IP 和路径):

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/你的用户名/你的仓库.git'
            }
        }
        stage('Build') {
            steps {
                sh 'npm install && npm run build'  // 根据项目技术栈调整
            }
        }
        stage('Deploy') {
            steps {
                sshPublisher(publishers: [
                    sshPublisherDesc(
                        configName: 'target-server',
                        transfers: [
                            sshTransfer(
                                sourceFiles: 'dist/**',  // 构建产物的相对路径
                                remoteDirectory: '/www/wwwroot/你的网站目录',
                                removePrefix: 'dist'
                            )
                        ]
                    )
                ])
            }
        }
        stage('Restart Service') {
            steps {
                sshCommand remote: 'target-server', command: 'sudo systemctl restart nginx || /etc/init.d/nginx restart'
            }
        }
    }
}

注意
使用 sshPublisher 需要先安装“Publish Over SSH”插件,
并在“系统管理”->“系统配置”中添加 SSH Server,
填写目标服务器的 IP、
用户名和私钥。

配置 Git Webhook 实现自动触发

为了让每次代码推送都自动跑流水线,需要在 GitHub 仓库设置 Webhook。

  1. 进入 GitHub 仓库 -> Settings -> Webhooks -> Add webhook
  2. Payload URL 填写 http://你的Jenkins服务器IP:8080/github-webhook/(注意最后的斜杠)
  3. Content type 选择 application/json
  4. 勾选“Just the push event”
  5. 点击 Add webhook

回到 Jenkins,在 Pipeline 任务的“构建触发器”中勾选“GitHub hook trigger for GITScm polling”。
保存后,往仓库推送一次代码,观察是否自动触发构建。

跨境部署的常见坑与避障指南

  1. SSH 连接超时:跨境网络不稳定,建议在 Jenkins 系统配置里将 SSH Server 的“Timeout”调大到 30 秒以上。
  2. 权限不足:目标服务器上 Jenkins 使用的用户(一般是 root 或 www)需要具有目标目录的写权限。宝塔面板默认目录为 /www/wwwroot/,可使用 chown -R www:www /www/wwwroot/ 调整。
  3. 构建产物路径错误:务必确认 sourceFilesremovePrefix 匹配实际目录结构。可以先手动在 Jenkins 工作空间运行 ls dist/ 检查。
  4. Webhook 未触发:检查 Jenkins 服务器防火墙是否放行 8080 端口,GitHub 的 Webhook 日志里会显示请求状态(http 200 为成功)。

验证自动化发布是否生效

完成以上配置后,测试流程:

  • 本地修改网站首页(例如将标题改为“v2”),git commitpush 到 main 分支
  • 观察 Jenkins 控制台输出:Pipeline 应依次执行 Checkout -> Build -> Deploy -> Restart
  • 打开跨境网站,刷新页面,查看修改是否已上线
  • 如果失败,进入 Jenkins 任务的历史记录,点击对应构建编号,查看“Console Output”中的报错信息

常见问题解答(FAQ)

Q1:Jenkins 部署后网站没有变化,怎么回事?
A:先检查 Deploy 步骤中远程目录是否正确;再确认目标服务器上的 Nginx 或 Apache 是否已经重启。可以在 Console Output 中 grep “Restart”看看是否执行成功。

Q2:国内服务器 Jenkins 连接海外服务器特别慢,有哪些优化方法?
A:建议将 Jenkins 服务器也部署在靠近目标的位置,例如使用泽御云香港节点作为 Jenkins 主机;或使用 SSH 多路复用(在 ~/.ssh/config 添加 ControlMaster auto)。

Q3:使用宝塔面板时,如何配合 Jenkins 实现自动发布?
A:宝塔自带“宝塔插件”可放行端口,但更简单的方法是把 Jenkins 的 SSH 目标指向宝塔服务器,部署到 /www/wwwroot/你的站点,然后通过 Jenkins 的 Remote SSH 执行 bt restart(需要宝塔API)或重启 Nginx。

Q4:Pipeline 中如何在部署前备份原文件?
A:在 Deploy 步骤前增加一个 stage,使用 sshCommand 执行备份命令,例如 tar czf /backup/$(date +%Y%m%d%H%M%S).tar.gz /www/wwwroot/你的目录,然后再覆盖部署。

分享到:
上一篇
GDPR跨境站点用户数据隐私安全配置
下一篇
私有Git仓库存储建站脚本与中转配置完全指南
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意