#!/bin/bash # 灰度回滚脚本:切回稳定版本流量 # 用法: ./scripts/rollback.sh [稳定版本号] set -euo pipefail STABLE_VERSION="${1:-current}" echo "==========================================" echo " 灰度回滚" echo " 切回稳定版本: $STABLE_VERSION" echo "==========================================" # 1. 恢复Nginx全量到稳定版本 echo "" echo ">>> 恢复Nginx全量流量到稳定版本..." NGINX_CONF="${NGINX_CONF:-/etc/nginx/conf.d/saas-api.conf}" if [[ -f "$NGINX_CONF" ]]; then # 找最近的备份 LATEST_BAK=$(ls -t "${NGINX_CONF}".bak.* 2>/dev/null | head -1) if [[ -n "$LATEST_BAK" ]]; then cp "$LATEST_BAK" "$NGINX_CONF" echo " 从备份恢复: $LATEST_BAK" else echo " 未找到备份,请手动移除 canary upstream" fi nginx -t && nginx -s reload echo " ✅ Nginx 已回滚" fi # 2. 停止灰度版本容器(保留30分钟以便排查) echo "" echo ">>> 灰度版本容器将在30分钟后停止(便于排查问题)" echo " 立即停止请执行: docker stop saas-api-canary saas-worker-canary" echo "" echo "==========================================" echo " ✅ 回滚完成" echo " 流量已全部切回稳定版本" echo "=========================================="