服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 服务器系统 > CentOS > 正文

自动同步nginx配置并重新加载nginx

时间:2025-06-15    来源:未知    投稿:admin    点击:

#!/bin/bash

# ================== 配置部分 ==================
LOCAL_FILE="/etc/nginx/nginx.conf"     # 本地配置文件路径
REMOTE_PATH="/etc/nginx/"              # 远程服务器保存路径
REMOTE_USER="root"                     # 远程服务器登录用户
SSH_PORT="33699"                       # SSH 端口号(非默认 22)

# 目标服务器列表(请替换为你的实际服务器IP)
SERVERS=(
    "192.168.0.3"
    "192.168.0.4"
)

# nginx 重启命令(根据系统选择 systemctl 或 service)
RELOAD_CMD="systemctl reload nginx"

# 日志文件(可选)
LOGFILE="/var/log/sync_nginx.log"

# ================== 函数:记录日志 ==================
log() {
    local message="$1"
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" | tee -a "$LOGFILE"
}

# ================== 主程序开始 ==================
log "========== 开始同步 nginx 配置 =========="

for ip in "${SERVERS[@]}"; do
    log "🔄 正在同步到服务器: $ip..."

    # 同步配置文件
    sshpass -p 'fwqzx@20250615' rsync -avz -e "ssh -p $SSH_PORT" "$LOCAL_FILE" "${REMOTE_USER}@$ip:$REMOTE_PATH"

    if [ $? -eq 0 ]; then
        log "✅ 配置文件同步成功: $ip"
    else
        log "❌ 配置文件同步失败: $ip"
        continue
    fi

    # 执行远程 Nginx 重载
    log "🔁 正在重载远程服务器 $ip 上的 Nginx..."
    sshpass -p 'fwqzx@20250615' ssh -p "$SSH_PORT" "${REMOTE_USER}@$ip" "$RELOAD_CMD"

    if [ $? -eq 0 ]; then
        log "✅ Nginx 已成功重载: $ip"
    else
        log "❌ Nginx 重载失败: $ip"
    fi
done

log "========== 同步完成 =========="

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。


上一篇:云主机创建时,使用自定义数据
下一篇:没有了