auto_trade_sys/backend/NGINX_CONFIG.md
薇薇安 aa1b9065d8 a
2026-01-14 13:25:29 +08:00

1.9 KiB
Raw Blame History

Nginx 反向代理配置说明

如果遇到 307 重定向到 127.0.0.1 的问题,请检查 Nginx 配置。

问题现象

前端请求 http://asapi.deepx1.com/api/trades?limit=100&period=7d 被重定向到 http://127.0.0.1/api/trades/?limit=100&period=7d

可能的原因

  1. Nginx 配置中的 proxy_redirect 设置错误
  2. Location 头的重写规则有问题
  3. FastAPI 的自动重定向(已修复)

推荐的 Nginx 配置

server {
    listen 80;
    server_name asapi.deepx1.com;

    # 禁用自动重定向到尾部斜杠
    merge_slashes off;

    location /api {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 重要:不要重写 Location 头,除非必要
        # proxy_redirect http://127.0.0.1:8001/ http://asapi.deepx1.com/;
        
        # 如果必须重写,使用正确的格式
        # proxy_redirect http://127.0.0.1:8001/ http://$host/;
        
        # 禁用重定向跟随(让浏览器处理)
        proxy_redirect off;
    }
}

检查步骤

  1. 检查 Nginx 配置

    sudo nginx -t
    sudo nginx -s reload
    
  2. 检查 FastAPI 日志

    tail -f backend/logs/api.log
    
  3. 测试 API 端点

    curl -v http://asapi.deepx1.com/api/trades?limit=10
    

已修复的问题

  • FastAPI 应用级别禁用自动重定向(redirect_slashes=False
  • 路由同时支持有斜杠和无斜杠的路径
  • 前端 API 调用统一使用无斜杠路径

如果问题仍然存在

  1. 检查 Nginx 错误日志:/var/log/nginx/error.log
  2. 检查 Nginx 访问日志:/var/log/nginx/access.log
  3. 临时禁用 Nginx直接访问 FastAPIhttp://服务器IP:8001/api/trades