Files
nxxmdata/government-backend/nginx-config-test.md
2025-10-17 17:29:11 +08:00

2.2 KiB
Raw Blame History

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 不应该出现

可能的问题原因

  1. 前端请求路径错误:前端可能错误地构造了重复路径
  2. nginx重写规则可能有隐藏的rewrite规则导致路径重复
  3. 代理配置问题proxy_pass的路径处理可能有问题

测试步骤

  1. 运行诊断脚本:

    node diagnose-url-issue.js
    
  2. 检查nginx错误日志

    sudo tail -f /var/log/nginx/error.log
    
  3. 检查nginx访问日志

    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 (不应该存在)