2.2 KiB
2.2 KiB
Nginx配置测试说明
问题描述
- 登录接口:
/api/government/auth/login✅ 正常 - 其他接口:
/api/government/departments❌ 报错 - 错误URL:
/api/government/government/departments(路径重复)
当前nginx配置分析
Server块1: ad.ningmuyun.com (HTTPS 443)
# 静态文件服务
location ^~ /government/ {
alias /data/vue/ningmuyun/government/dist/;
# 处理前端静态文件
}
# 认证API代理 (优先级最高)
location ^~ /api/government/auth/ {
proxy_pass http://localhost:5352/api/auth/;
# 处理登录等认证接口
}
# 其他API代理 (优先级较低)
location ^~ /api/government/ {
proxy_pass http://localhost:5352/api/government/;
# 处理其他政府API接口
}
路径映射测试
| 请求路径 | 匹配规则 | 代理目标 | 预期结果 |
|---|---|---|---|
/api/government/auth/login |
^~ /api/government/auth/ |
/api/auth/login |
✅ 正常 |
/api/government/departments |
^~ /api/government/ |
/api/government/departments |
✅ 应该正常 |
/api/government/government/departments |
无匹配 | 404 | ❌ 不应该出现 |
可能的问题原因
- 前端请求路径错误:前端可能错误地构造了重复路径
- nginx重写规则:可能有隐藏的rewrite规则导致路径重复
- 代理配置问题:proxy_pass的路径处理可能有问题
测试步骤
-
运行诊断脚本:
node diagnose-url-issue.js -
检查nginx错误日志:
sudo tail -f /var/log/nginx/error.log -
检查nginx访问日志:
sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log
修复建议
如果确认是nginx配置问题,可能需要:
- 调整location规则的顺序
- 添加更具体的路径匹配规则
- 检查是否有隐藏的rewrite规则
- 验证proxy_pass的路径处理
验证方法
修复后,以下URL应该正常工作:
- ✅
https://ad.ningmuyun.com/api/government/auth/login - ✅
https://ad.ningmuyun.com/api/government/departments - ✅
https://ad.ningmuyun.com/api/government/market-price - ❌
https://ad.ningmuyun.com/api/government/government/departments(不应该存在)