当前位置: 首页 > news >正文

使用python格式化nginx配置文件

nginx配置文件有时代码错乱,缩进不一,虽然不影响正常使用,但看着还是有些糟心:如下所示:

有没有办法可以快速格式化,又不影响功能使用呢?方法有很多,这里介绍下使用python进行快速格式化。

1、安装格式化工具:

pip install nginxfmt

2、编写shell脚本format_nginx.sh

这个shell脚本集成了备份旧文件,语法检查,重新加载配置文件,失败回滚到旧文件的功能,注意替换为自己nginx配置文件的路径

#!/bin/bash
# 自动格式化 nginx.conf 并检查语法安全NGINX_CONF="/etc/nginx/conf/nginx.conf"
BACKUP_FILE="${NGINX_CONF}.$(date +%Y%m%d%H%M%S).bak"# 1. 备份原文件
cp "$NGINX_CONF" "$BACKUP_FILE"
echo "[OK] 已备份: $BACKUP_FILE"# 2. 使用 nginxfmt 格式化(需要先安装 pip 包:pip install nginxfmt)
TMP_FILE=$(mktemp)
nginxfmt "$NGINX_CONF" > "$TMP_FILE"# 3. 检查语法
cp "$TMP_FILE" "$NGINX_CONF"
if nginx -t; thenecho "[OK] 格式化成功并通过语法检查 ✅"nginx -s reloadecho "[OK] 已自动 reload nginx"
elseecho "[ERROR] 配置有误,已恢复备份 ❌"cp "$BACKUP_FILE" "$NGINX_CONF"rm "$TMP_FILE"exit 1
firm "$TMP_FILE"

如果nginx是使用docker安装的,则使用下面的脚本:

#!/bin/bash
# 自动格式化 nginx.conf 并检查语法安全NGINX_CONF="/etc/nginx/conf/nginx.conf"
BACKUP_FILE="${NGINX_CONF}.$(date +%Y%m%d%H%M%S).bak"# 1. 备份原文件
cp "$NGINX_CONF" "$BACKUP_FILE"
echo "[OK] 已备份: $BACKUP_FILE"# 2. 使用 nginxfmt 格式化(需要先安装 pip 包:pip install nginxfmt)
TMP_FILE=$(mktemp)
nginxfmt "$NGINX_CONF" > "$TMP_FILE"if docker exec nginx nginx -t -c /etc/nginx/nginx.conf; thenecho "[OK] 格式化成功并通过语法检查 ✅"docker exec nginx nginx -s reloadecho "[OK] 已自动 reload nginx"
elseecho "[ERROR] 配置有误,已恢复备份 ❌"cp "$BACKUP_FILE" "$NGINX_CONF"rm "$TMP_FILE"exit 1
firm "$TMP_FILE"

注意替换nginx配置文件、nginx -t 和nginx -s reload为自己真实的配置,我这里nginx容器名称就叫nginx,所以可以这样写:

if docker exec nginx nginx -t -c /etc/nginx/nginx.conf; thenecho "[OK] 格式化成功并通过语法检查 ✅"docker exec nginx nginx -s reload

3.给脚本添加执行权限

注意替换shell脚本的路径

chmod +x /usr/local/bin/format_nginx.sh

4.执行脚本

./format_nginx.sh

执行后,nginx配置文件进行格式化后,代码统一对齐,看着美观,后续也好维护。

http://www.dtcms.com/a/358758.html

相关文章:

  • 【系统分析师】高分论文:论系统测试技术及应用
  • xAI发布全新编码模型 grok‑code‑fast‑1!
  • SpringBoot防止重复提交(2)
  • day44-Ansible变量
  • 联合体和枚举——嵌入式学习笔记
  • 每日算法题【二叉树】:二叉树的最大深度、翻转二叉树、平衡二叉树
  • 【系统分析师】高分论文:论软件的系统测试及应用
  • 栈溢出问题
  • Redis-数据类型的常用操作命令
  • uart学习
  • Jdk动态代理 Cglib动态代理
  • MYSQL表结构优化场景
  • 解构机器学习:如何从零开始设计一个学习系统?
  • folium地图不显示加载不出来空白问题解决
  • SAP PP模块的MPS
  • 福彩双色球第2025100期篮球号码分析
  • git在push和clone等操作时显示‘: Invalid argument
  • 优选算法:二分查找
  • #5:Nginx核心使用技术
  • Java 学习笔记(基础篇12)
  • 小狼毫输入法中让数字键盘上的数字键不再选择候选词而是与原始输入一起直接上屏
  • 计算机视觉与深度学习 | 基于深度学习的图像特征提取与匹配算法综述及MATLAB实现
  • 互联网大厂大模型应用开发岗位面试:技术点详解与业务场景演练
  • nacos3端口漂移问题
  • shell编程-核心变量知识
  • LeetCode - 234. 回文链表
  • 2025年高性能计算年会
  • Golang 面试题「高级」
  • 零碳智慧园区双碳方案
  • 代理IP网站哪家好?全球优质IP代理服务商有什么推荐?