78 lines
2.2 KiB
Markdown
78 lines
2.2 KiB
Markdown
|
|
# Nginx配置测试说明
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
- 登录接口:`/api/government/auth/login` ✅ 正常
|
|||
|
|
- 其他接口:`/api/government/departments` ❌ 报错
|
|||
|
|
- 错误URL:`/api/government/government/departments` (路径重复)
|
|||
|
|
|
|||
|
|
## 当前nginx配置分析
|
|||
|
|
|
|||
|
|
### Server块1: ad.ningmuyun.com (HTTPS 443)
|
|||
|
|
```nginx
|
|||
|
|
# 静态文件服务
|
|||
|
|
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 | ❌ 不应该出现 |
|
|||
|
|
|
|||
|
|
## 可能的问题原因
|
|||
|
|
|
|||
|
|
1. **前端请求路径错误**:前端可能错误地构造了重复路径
|
|||
|
|
2. **nginx重写规则**:可能有隐藏的rewrite规则导致路径重复
|
|||
|
|
3. **代理配置问题**:proxy_pass的路径处理可能有问题
|
|||
|
|
|
|||
|
|
## 测试步骤
|
|||
|
|
|
|||
|
|
1. 运行诊断脚本:
|
|||
|
|
```bash
|
|||
|
|
node diagnose-url-issue.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 检查nginx错误日志:
|
|||
|
|
```bash
|
|||
|
|
sudo tail -f /var/log/nginx/error.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 检查nginx访问日志:
|
|||
|
|
```bash
|
|||
|
|
sudo tail -f /var/log/nginx/ad.ningmuyun.com.access.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 修复建议
|
|||
|
|
|
|||
|
|
如果确认是nginx配置问题,可能需要:
|
|||
|
|
|
|||
|
|
1. 调整location规则的顺序
|
|||
|
|
2. 添加更具体的路径匹配规则
|
|||
|
|
3. 检查是否有隐藏的rewrite规则
|
|||
|
|
4. 验证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` (不应该存在)
|