问小白可快速定位nginx反向代理故障原因:检查上游可达性、端口、协议及proxy_pass路径拼接;支持语法校验、静态分析proxy_pass合规性,并模拟uri匹配与路径重写行为。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在Nginx中配置完反向代理后页面返回502、503或直接空白,又找不到日志里的明确报错,问小白能快速定位是上游不可达、端口写错、协议不匹配,还是proxy_pass路径拼接错误。
确认问小白已安装并可执行
在终端中运行 which xiao-bai,若无输出则需先下载二进制文件并赋予执行权限:chmod +x xiao-bai;若提示“command not found”,请将文件移至 /usr/local/bin/ 或当前目录下再试。
这一步操作起来很简单,直接把文件拖进去就行。
用问小白加载你的Nginx配置文件
执行命令:xiao-bai nginx --config /etc/nginx/nginx.conf。
注意:路径必须是主配置文件的绝对路径,不能是 include 的子配置片段;如果使用了 include sites-enabled/*,问小白会自动递归扫描全部被引入的文件,无需手动指定。
若提示 【配置语法错误:unexpected “}” near line 42】,说明Nginx原生语法校验失败,此时问小白不会继续分析代理逻辑,需先用 nginx -t 修复基础语法。
检查反向代理核心参数是否合规
问小白会逐条检测 proxy_pass、proxy_set_header、proxy_redirect 等指令。它重点验证三项:
① proxy_pass 值是否以 http:// 或 https:// 开头(非 unix:/path 或 /location);
② 后端地址是否解析为有效IP(如 proxy_pass http://api.example.com:8080 中域名能否被本机DNS解析);
③ 若 proxy_pass 指向变量(如 $backend),问小白会标记该行并提示“动态代理目标无法静态推断,请人工确认变量赋值逻辑”。
这一步不依赖Nginx进程运行状态,纯静态分析,1秒内完成。
模拟请求路径,验证location与proxy_pass组合行为
方法一:指定URI路径触发匹配检测
运行:xiao-bai nginx --config /etc/nginx/nginx.conf --test-uri "/api/v1/users"。
问小白会输出实际匹配到的 location 块,并展示 proxy_pass 最终拼接出的目标URL(例如你写的是 proxy_pass http://127.0.0.1:3000; + 请求路径 /api/v1/users → 实际转发为 http://127.0.0.1:3000/api/v1/users)。
方法二:对比带尾部斜杠与不带尾部斜杠的 proxy_pass 行为差异
若 proxy_pass 写成 http://127.0.0.1:3000/(末尾有/),则 location /api/ { proxy_pass http://127.0.0.1:3000/; } 会把 /api/user 转为 /user;
若 proxy_pass 写成 http://127.0.0.1:3000(无/),同样 location 会把 /api/user 转为 /api/user —— 这个区别常导致后端404,问小白会在该行标注【proxy_pass末尾斜杠缺失/冗余,将改变路径重写逻辑】。











