规范Nginx配置需统一缩进(强制4空格/禁Tab)、命名(业务-环境-功能分层)、结构(include解耦)及配套机制(CI校验、初始化脚本、批量格式化)。
规范 Nginx 配置文件的缩进与命名,核心是建立可执行、易识别、能自动校验的一致性规则,而不是靠人工记忆或临时约定。团队协作中,混乱的缩进和随意的命名会直接拖慢排查速度、增加合并冲突、阻碍自动化部署——尤其在多人共管多环境配置时。
缩进不一致(比如混用空格与 Tab、2 空格 vs 4 空格、块内缩进错位)是配置出错的常见诱因。手动调整既低效又不可靠。
-i 2 切换为 2 空格,命令示例:nginxfmt.py -i 4 site.conf
nginxfmt.py --check,失败则阻断合并,确保仓库内配置始终整洁命名不是为了好看,而是让任何人一眼看懂“这是谁的、在哪用、管什么”。避免出现 nginx.conf.bak、test.conf、new.conf 这类无意义名称。
/etc/nginx/nginx.conf,仅保留全局指令(user、worker_processes、events、include http)/etc/nginx/conf.d/,命名格式:{业务名}-{环境}-{功能}.conf,例如:shop-prod-web.conf、api-staging-api.conf
/etc/nginx/includes/ 下的语义化文件,如:upstream-app-servers.conf、ssl-tls-1-3.conf
把所有配置堆在 nginx.conf 里,等于把整栋楼的电路图画在一张 A4 纸上——看得见,但改不动。拆分不是为了多几个文件,而是让变更边界清晰、影响范围可控。
server 块对应一个独立 .conf 文件,按域名或服务划分,便于权限隔离与灰度发布/etc/nginx/common/ 目录下的 include 文件,通过 include common/*.conf; 引入include environments/prod/*.conf;,避免硬编码环境变量再好的规范,没有配套动作就只是文档里的装饰。关键在于把约束嵌入日常操作流。
nginx -t + nginxfmt --check 双校验,任一失败即中断构建find /etc/nginx -name "*.conf" -exec nginxfmt.py -b {} ; 批量备份并格式化存量配置,降低历史包袱