Nginx 反向代理配置

使用 Nginx 作为 Data Agent 的反向代理,可以提供负载均衡、SSL 终止、静态文件服务等能力。

基础配置

以下是一个完整的 Nginx 反向代理配置示例:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;

        # 禁用所有缓冲(流式响应必需)
        proxy_buffering off;
        proxy_request_buffering off;

        # 增加读取超时,SSE 是长连接(默认 60s)
        proxy_read_timeout 3600s;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        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;
        proxy_cache_bypass $http_upgrade;
    }
}

关键配置说明

参数默认值建议值说明
proxy_bufferingonoff禁用响应缓冲,LLM 流式输出必需
proxy_request_bufferingonoff禁用请求缓冲,适合大文件上传
proxy_read_timeout60s3600s后端响应超时,SSE 长连接需要调大

子路径部署

如果需要将 Data Agent 部署到子路径(如 https://your-domain.com/data-agent/),需要同时配置环境变量和 Nginx。

环境变量配置

docker-compose.yml 中添加 APP_PUBLIC_PATH 环境变量:

services:
  app:
    environment:
      - APP_PUBLIC_PATH=/data-agent/  # 替换为您的子路径

Nginx 配置

server {
    listen 80;
    server_name your-domain.com;

    location /data-agent/ {
        proxy_pass http://127.0.0.1:3000/data-agent/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;

        # 禁用缓冲(流式响应必需)
        proxy_buffering off;
        proxy_request_buffering off;

        # 增加读取超时,SSE 是长连接(默认 60s)
        proxy_read_timeout 3600s;
    }
}

注意APP_PUBLIC_PATH 的值必须与 Nginx location 的路径保持一致,且必须以 / 开头和结尾。

配置生效

修改配置后,检查语法并重载:

# 检查配置语法
sudo nginx -t

# 重载配置
sudo nginx -s reload

常见问题

流式输出仍然不生效

如果禁用 proxy_buffering 后流式输出仍不生效,检查:

  1. 确认配置已生效:nginx -t && nginx -s reload
  2. 检查是否有其他缓存层(如 CDN)
  3. 确认后端应用未启用缓冲