## 目标 - 提升 Nginx 代理下的上传体积与超时,解决大文件上传被限制的问题(413/超时)。 ## 现状 - 当前配置文件:`deploy/web.conf` 使用 `location ^~ /api/` 反向代理到后端 `http://127.0.0.1:9999`,未设置上传大小和超时。 ## 修改内容 - 在 `server {}` 块中增加统一的体积限制。 - 在 `location ^~ /api/` 中增加长超时与关闭请求缓冲(提升大文件上传稳定性)。 ## 具体改动(覆盖式替换关键片段) - 在 `server_name localhost;` 后增加: ``` client_max_body_size 50m; ``` - 在 `location ^~ /api/ { ... }` 内追加: ``` proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 300s; proxy_send_timeout 300s; proxy_request_buffering off; ``` ## 变更后的完整结构示例 ``` server { listen 80; server_name localhost; client_max_body_size 50m; location = /docs { proxy_pass http://127.0.0.1:9999/docs; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location = /redoc { proxy_pass http://127.0.0.1:9999/redoc; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location = /openapi.json { proxy_pass http://127.0.0.1:9999/openapi.json; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { root /opt/vue-fastapi-admin/web/dist; index index.html index.htm; try_files $uri /index.html; } location ^~ /api/ { proxy_pass http://127.0.0.1:9999; 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_read_timeout 300s; proxy_send_timeout 300s; proxy_request_buffering off; } } ``` ## 发布与验证 - 检查配置:`nginx -t` - 重新加载:`nginx -s reload` - 测试上传:使用 30–40MB 文件调用 `POST /api/v1/upload/file`,确认不再出现 413 或上传超时;同时测试 `POST /api/v1/upload/image` 大图。 ## 备注 - 如需更大体积可将 `client_max_body_size` 调整为 `100m` 或更高;若上层云负载均衡也有限制,需要同步放宽。 - 后续可在应用层增加最大体积限制与提示,避免无界上传占用过多资源。