nginx 文件同步方案

由于公司有多套相对独立测试环境,每次迭代上线后,需要对nginx进行同步。
同步主要分为html目录文件同步和nginx conf文件同步。
html的同步方式比较简单,对于没有特殊需求的环境,直接将整个html目录同步过去;
对于有特殊目录要求的环境,则针对特殊目录进行同步即可。

对于conf文件,一般都放置于conf目录下的vhosts目录中。
conf文件不同环境主要有以下一些不同点。
1.server_name 一般带有环境的特征(test1xxx.xxx.com) 或者ip地址(x.x.x.x)
2.proxy_pass 可能会有环境相关的域名(t1xxx.xxx.com) 或者ip+端口的形式(x.x.x.x:xx)

所以同步的方案就按如下步骤进行
1.将目标环境的html,vhosts目录生成备份目录
2.将源环境的html,vhosts目录scp到目标环境
3.将环境相关特征使用目标环境的信息替换源环境的信息 eg test1 --> test2
4.再将相关的ip,port一一替换

具体实现
使用python paramiko模块来操作linux命令
1.连接目标环境机器,查看html/vhosts目录是否存在,存在则生成备份目录(mv)
2.使用scp 命令将html/vhosts目录从源服务器同步到目标服务器。
3.使用perl 命令将conf文件的所有源环境信息替换成目标环境信息 perl -p -i -e "s/test1/test2/g" ./*.conf
4.遍历所有conf文件,读取是否存在相应ip或者端口信息,有则用目标环境的相关信息替换,生成新的conf文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值