## 前置条件
获取 saltmaster root 权限
获取 repo write 权限
dev repo:[https://code.dianrong.com/projects/DO/repos/saltstack-dev/browse](https://code.dianrong.com/projects/DO/repos/saltstack-dev/browse)
prod repo:[https://code.dianrong.com/projects/DO/repos/saltstack/browse](https://code.dianrong.com/projects/DO/repos/saltstack/browse)
nginx state 文件位于 srv/salt/nginx/init.sls
所有 nginx 配置都在 srv/salt/nginx/files 目录下,通过 hostname/salt-minion id 来区分
一般每组 nginx 有两个节点,其中一个软连接到另外一个,修改的时候只需要修改其中一个
salt 下发的时候两个节点都需要下发(防止故障切换时数据不一致)
![](https://wiki.dianrong.com/download/attachments/19400863/WX20181225-06235.png?version=1&modificationDate=1545690260000&api=v2 "Engineering Infra Service > nginx 配置文件变更流程 > WX20181225-06235.png")
## 变更流程示意图
![](https://wiki.dianrong.com/download/attachments/19400863/nginx%20%E4%BF%AE%E6%94%B9%E6%B5%81%E7%A8%8B%E7%A4%BA%E6%84%8F%E5%9B%BE.png?version=1&modificationDate=1545689830000&api=v2 "Engineering Infra Service > nginx 配置文件变更流程 > nginx 修改流程示意图.png")
## **下文以 lb009-demo.b8.dianrong.io 为例演示。**
## 本地修改、提交(只需修改一组中的其中一个):
git clone ssh://git@code.dianrong.com:7999/do/saltstack-dev.git
cd saltstack-dev/srv/salt/nginx/files/lb009-demo.b8.dianrong.io
edit some files
git diff
git commit
git push
登录 salt master 更新 nginx 配置后下发:
## 首先拉取最新配置(salt master)
ssh saltmaster
sudo -i
/srv/salt/bin/update.sh
## review 即将产生的变化(salt master)
salt -L 'lb009-demo.b8.dianrong.io, lb010-demo.b8.dianrong.io' state.sls nginx test=True
## 下发 nginx 配置并在验证通过后 reload(salt master),一组中的两个节点同时下发
salt -L 'lb009-demo.b8.dianrong.io, lb010-demo.b8.dianrong.io' state.sls nginx
- 云原生应用
- 容器化微服务改造方案
- 应用容器化上线规范
- 服务网格和传统应用区别
- DevOps 管理规范
- 基础架构管理规范
- 域名管理规范
- 主机名称管理规范
- 应用域名管理规范
- 应用上线规范
- GIT分支及API JAR上传规范
- 基础架构设计
- 运维管理职责
- 基础服务
- DNS 内部架构
- centos 及 kernel 版本标准
- Linux服务器OS标准配置
- Docker版本初始化
- kuberneter 集群方案
- kubernetes 命名规范
- Jenkins CI/CD
- nginx 配置文件变更流程
- Prometheus 容器监控
- 项目资源需求
- 应用服务
- 编译和运行期标准
- 新核心系统基础服务架构
- 安全防御
- 互联网软件可靠性工程及可靠性度量