feat(交易记录): 新增交易记录管理页面与API接口 feat(上传): 添加统一上传接口支持自动识别文件类型 feat(用户管理): 为用户模型添加备注字段并更新相关接口 feat(邮件): 实现SMTP邮件发送功能并添加测试脚本 feat(短信): 增强短信服务配置灵活性与日志记录 fix(发票): 修复发票列表时间筛选功能 fix(nginx): 调整上传大小限制与超时配置 docs: 添加多个功能模块的说明文档 docs(估值): 补充估值计算流程与API提交数据说明 chore: 更新依赖与Docker镜像版本
70 lines
2.3 KiB
Markdown
70 lines
2.3 KiB
Markdown
## 目标
|
||
- 提升 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` 或更高;若上层云负载均衡也有限制,需要同步放宽。
|
||
- 后续可在应用层增加最大体积限制与提示,避免无界上传占用过多资源。 |