微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐