Nginx 配置格式化与检查
网络所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
把一份 nginx 配置重新排版:按大括号层级缩进,或压成一行。除了排版,它还会做几项检查 —— 大括号配不配对、哪条指令漏了结尾的 `;`、同一个端口上有没有重复的 `server_name`、`proxy_pass` 后面带不带路径(这一处会改变转给后端的 URI,是 nginx 最常见的坑之一)。检查结果只报告行号与原因,不替你做决定。`#` 注释与引号里的 `{}`、`;` 不会被误判。所有处理都在浏览器里完成,配置内容不会离开这台设备。
功能
- 按大括号层级缩进,缩进可选 2 空格、4 空格或 Tab
- 可压成一行,便于对比或粘贴
- 检查大括号是否配对,缺的、多的都给出行号
- 检查指令是否漏了结尾的 `;`(含跨行漏写与文件末尾)
- 找出同一端口上重复的 `server_name`
- 提示同一端口上的多个 `default_server`
- 说明 `proxy_pass` 带不带路径对后端 URI 的不同影响
- `#` 注释与引号里的 `{}`、`;` 一律不参与结构判断
- 结果可逐行复制,也可整块复制
使用方法
- 把 nginx 配置粘贴或拖进输入框
- 选缩进、是否展开、是否压成一行
- 格式化结果与检查结果随输入实时更新
- 点行末的复制按钮取走需要的一部分
常见问题
- `proxy_pass http://backend` 与 `http://backend/` 有什么区别?
- 区别在转给后端的 URI。不带路径时,nginx 把原始请求 URI 原样转过去;带了路径(哪怕只是一个 `/`),location 匹配到的那一段会被替换成这个路径。所以 `location /api/ { proxy_pass http://backend/; }` 会把 `/api/users` 变成 `/users`,而 `proxy_pass http://backend;` 会原样转发 `/api/users`。这一处差异在日志里几乎看不出来,是排查 404 时最该先核对的一行。
- 为什么「漏分号」会指到某一整行?
- nginx 允许一条指令跨行书写(续行通常有缩进),所以工具不能只看某一行。它的判据是:某一行的指令还没以 `;`、`{`、`}` 结束,下一行却从第 1 列起了一个新 token —— 这说明上一行忘了分号。缩进的续行不会被误报,因为它们的 token 不在第 1 列。
- 压成一行时为什么把注释去掉了?
- 因为一行里放不下 `#` 注释:`#` 后面的内容直到行尾都会被注释掉,压成一行之后它会把同一行剩下的指令全部吃掉。要去掉的是这个风险,而不是你的注释 —— 需要保留注释时,用「展开」模式即可。
- 配置内容会上传吗?
- 不会。切词、缩进、检查全部在浏览器里完成,页面不发送任何请求,断网也能用。
相关工具
配置校验
网络校验 package.json、.env、robots.txt、sitemap.xml 与 HTTP 响应头,结论分错误、警告、建议三级,每条都说明为什么。全部在浏览器本地完成。
CSS 格式化
格式化在线 CSS 格式化与压缩:规则块展开、声明逐行、选择器列表一项一行,压缩只删结构位置的空白,保留 margin: 0 auto 这类有语义的空格。
robots.txt 生成
网络生成 robots.txt:可选全部放行、只拦 AI 训练爬虫、全部禁止或自定义名单,并配置禁止路径、Sitemap 与 Crawl-delay。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。