1.9 KiB
1.9 KiB
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
可能的原因
- Nginx 配置中的
proxy_redirect设置错误 - Location 头的重写规则有问题
- 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;
}
}
检查步骤
-
检查 Nginx 配置
sudo nginx -t sudo nginx -s reload -
检查 FastAPI 日志
tail -f backend/logs/api.log -
测试 API 端点
curl -v http://asapi.deepx1.com/api/trades?limit=10
已修复的问题
- ✅ FastAPI 应用级别禁用自动重定向(
redirect_slashes=False) - ✅ 路由同时支持有斜杠和无斜杠的路径
- ✅ 前端 API 调用统一使用无斜杠路径
如果问题仍然存在
- 检查 Nginx 错误日志:
/var/log/nginx/error.log - 检查 Nginx 访问日志:
/var/log/nginx/access.log - 临时禁用 Nginx,直接访问 FastAPI:
http://服务器IP:8001/api/trades