切换主题
HTTP模式使用指南
概述
HTTP模式允许文件服务器作为代理,将上传、下载、删除请求转发到其他文件服务器。只需要配置目标服务器的域名信息,系统会自动构建完整的请求URL。
配置说明
基本配置
yaml
files:
- business-type: remote
file-type: http
http-forward-url: http://192.168.1.100:9830
1
2
3
4
2
3
4
负载均衡配置
yaml
files:
- business-type: images
file-type: http
http-forward-url: lb://file-server
1
2
3
4
2
3
4
配置参数说明
参数 | 说明 | 必填 | 示例 |
---|---|---|---|
business-type | 业务类型标识 | 是 | remote |
file-type | 文件类型,HTTP模式固定为 http | 是 | http |
http-forward-url | 目标文件服务器的基础地址或负载均衡地址 | 是 | http://192.168.1.100:9830 或 lb://file-server |
工作原理
请求转发规则
- 上传请求:
POST /upload/{businessType}
→POST {http-forward-url}/upload/{businessType}
- 下载请求:
GET /download/{businessType}/{path}
→GET {http-forward-url}/download/{businessType}/{path}
- 删除请求:
POST /delete/{businessType}/{path}
→POST {http-forward-url}/delete/{businessType}/{path}
普通HTTP模式示例
假设配置:
business-type
:remote
http-forward-url
:http://192.168.1.100:9830
则请求转发如下:
本服务请求 | 转发到目标服务器 |
---|---|
POST /upload/remote | POST http://192.168.1.100:9830/upload/remote |
GET /download/remote/2024/01/15/10/file.jpg | GET http://192.168.1.100:9830/download/remote/2024/01/15/10/file.jpg |
POST /delete/remote/2024/01/15/10/file.jpg | POST http://192.168.1.100:9830/delete/remote/2024/01/15/10/file.jpg |
负载均衡模式
当 http-forward-url
以 lb://
开头时,系统会启用负载均衡模式:
URL格式
lb://serviceName
1
serviceName
: Nacos中注册的服务名称
工作原理
- 服务发现:通过Nacos获取指定服务的健康实例
- 实例过滤:根据metadata中的business-type过滤实例
- 请求转发:将请求转发到选中的实例
示例
假设配置:
business-type
:images
http-forward-url
:lb://file-server
系统会:
- 从Nacos获取
file-server
服务的健康实例 - 检查实例的metadata中
business-type
是否匹配 - 转发请求到选中的实例
目标服务器配置
目标文件服务器需要在Nacos中注册时设置metadata:
yaml
# 目标服务器的Nacos配置
nacos:
discovery:
metadata:
business-type: images # 指定业务类型
1
2
3
4
5
2
3
4
5
使用场景
1. 负载均衡
配置多个文件服务器,通过HTTP模式实现负载均衡:
yaml
files:
- business-type: images
file-type: http
http-forward-url: http://file-server-1:9830
- business-type: documents
file-type: http
http-forward-url: http://file-server-2:9830
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
2. 服务器隔离
不同业务使用不同的文件服务器:
yaml
files:
- business-type: user-avatars
file-type: http
http-forward-url: http://avatar-server:9830
- business-type: product-images
file-type: http
http-forward-url: http://product-server:9830
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
3. 跨地域部署
就近访问文件服务器:
yaml
files:
- business-type: global
file-type: http
http-forward-url: http://file-server-asia:9830
1
2
3
4
2
3
4
功能特性
1. 完整功能支持
HTTP模式支持所有文件操作:
- ✅ 文件上传
- ✅ 文件下载
- ✅ 文件删除
2. 自动URL构建
系统会根据配置的 http-forward-url
自动构建完整的请求URL,无需手动拼接路径。
3. 响应透传
目标服务器的响应会直接透传给客户端,保持原始响应格式。
4. 错误处理
- 网络连接失败时返回错误信息
- 目标服务器返回非200状态码时返回错误信息
- 详细的错误日志记录
注意事项
- 网络连接:确保本服务能够访问目标文件服务器
- Nacos配置:确保Nacos服务发现功能已正确配置
- 超时设置:HTTP请求设置了30秒超时,可根据需要调整
- 路径安全:转发时会进行路径安全检查,防止路径遍历攻击
- 响应头转发:会转发目标服务器的响应头,保持原始响应格式
- 文件大小限制:上传时会检查文件大小限制
- 文件类型检查:上传时会检查文件类型限制
- 负载均衡:负载均衡模式下,Nacos会自动处理实例选择
监控和日志
HTTP模式的请求会在日志中记录以下信息:
- 请求转发日志
- 目标服务器响应状态
- 错误信息和异常情况
- 网络连接状态
可以通过日志监控HTTP模式的运行状态和性能。
故障排除
常见问题
连接超时
- 检查网络连接
- 确认目标服务器地址正确
- 检查防火墙设置
404错误
- 确认目标服务器支持对应的API路径
- 检查business-type配置是否正确
上传失败
- 检查目标服务器是否支持文件上传
- 确认文件大小和类型限制
删除失败
- 确认目标服务器是否支持文件删除
- 检查文件路径是否正确