我们的 nginx 变更平台当前阶段最多通过 ansible 把 nginx.conf 拷贝到目标机器的临时文件夹上,然后用 nginx -t 验证一下配置,这样可以解决配置语法的问题。但是如果比如变更备注写的减少某个 upstream 的参与负载机器,结果有个兄弟不小心把配置文件该 upstream 机器全都注释掉了,就变成了 0 台机器了。但是这样可以通过 nginx 的语法检查。类似的这种例子还很多,比如 server_name 域名少打一位等等。我们现在 nginx 配置变更就相当于直接修改 http 块的配置,整个 http 里面的内容都直接编辑,然后通过模板渲染一些固定参数后推送,并没有把 nginx 的所有配置表单化,而且变更备注也没有做成表单化,这样带来的问题是,没法验证实际变更和备注里面的逻辑的等价性。但是把 nginx 配置完全表单化难度也不小,因为 nginx 配置文件里面也可以写 lua 脚本什么的,变更备注表单话也是比较复杂的,因为能变更的种类真的太多太多。但是如果不表单化想检查逻辑可能就要用 NLP 等技术去解析语义了,有点弄复杂了。大家这块有啥好的方法没?