服务器蓝绿部署配置:Nginx 双环境切换实操教程

蓝绿部署的核心思路是在服务器上同时运行两套完全独立的应用环境(蓝环境和绿环境),通过 Nginx 或其他负载层把线上流量切到其中一套。
发布新版本时,先把代码部署到空闲环境并验证通过,再一次性切换流量,出问题可立即切回旧环境。
本文用 Nginx 和软链接实现这套配置,适合刚接触持续部署的运维人员。

准备两套运行环境

假设应用是 Node.js 或 PHP 项目,需要准备:

  • 两个独立目录:/var/www/app-blue 和 /var/www/app-green,分别存放新旧版本代码。
  • 一个对外目录:/var/www/app-current,用软链接指向当前活跃目录。
  • Nginx 已安装并运行,具备修改站点配置的权限。
  • 进程管理工具(如 PM2、systemd)分别管理两个环境的进程,避免端口冲突。

蓝环境用 3001 端口,绿环境用 3002 端口,Nginx 只监听 80 并转发到活跃端口。

配置 Nginx 指向当前环境

编辑站点配置文件,例如 /etc/nginx/conf.d/app.conf:

upstream app_backend {
    server 127.0.0.1:3001;
}

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://app_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

保存后执行 nginx -t 检查语法,再 nginx -s reload 生效。
此时流量走蓝环境(3001)。

部署新版本到空闲环境

以绿环境为例,把新代码放到 /var/www/app-green,安装依赖并启动:

cd /var/www/app-green
npm install --production
pm2 start server.js --name app-green -- --port 3002

启动后用 curl http://127.0.0.1:3002/health 或浏览器访问端口确认服务正常。不要急着切流量,先验证接口、页面和关键功能。

切换流量与回滚

确认绿环境无误后,修改 Nginx upstream 指向 3002,然后 reload:

sed -i 's/127.0.0.1:3001/127.0.0.1:3002/' /etc/nginx/conf.d/app.conf
nginx -t && nginx -s reload

如果切换后发现异常,把端口改回 3001 并 reload,流量立刻回到蓝环境。回滚时间取决于 Nginx reload 速度,通常在秒级。

避坑要点

  • 会话问题:如果应用把 session 存在本地内存,切换后用户可能掉线。建议把 session 存到 Redis 或数据库。
  • 静态资源缓存:切换后浏览器可能仍加载旧文件,可在文件名加 hash 或调整缓存头。
  • 端口冲突:两个环境必须用不同端口,否则启动失败。
  • 进程未退出:旧环境进程不要立即删除,保留至少一次发布周期,方便快速回滚。

验证切换是否成功

切换后执行以下检查:

  1. 访问域名,确认页面内容是新版本。
  2. 查看 Nginx 日志 tail -f /var/log/nginx/access.log,确认请求打到新端口。
  3. 用 curl -I http://your-domain.com 观察响应状态码和响应头。
  4. 在应用日志中确认没有大量报错。

全部通过后,蓝环境可以停止或保留作为下次的备用环境。

常见疑问

蓝绿部署和滚动发布有什么区别? 蓝绿是两套完整环境整体切换,回滚快但资源占用高;
滚动发布是逐步替换实例,资源省但回滚较慢。

必须用 Nginx 吗? 不是,HAProxy、Traefik 或云负载均衡也能实现,原理相同,都是切换后端指向。

小项目值得做蓝绿部署吗? 如果停机几分钟可以接受,直接用软链接切换目录也能达到类似效果,不必强上完整方案。

整体来看,服务器蓝绿部署配置的关键是把流量切换和服务启动解耦,先验证再切流,并保留快速回滚路径。
按本文步骤搭建后,你可以在不中断服务的前提下完成版本发布。

分享到:
上一篇
服务器上线部署流程:从零到可访问的实操步骤
下一篇
服务器滚动更新配置:从零实现不停机发布
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意