为文件配置独立地址访问
说明
在大多数浏览器中,对同一地址的最大并发请求数被限制为6。因此,如果工作表视图包含大量图片文件,用户在点击进入这样的视图时可能会导致浏览器请求排队。在这种情况下,如果用户在浏览器请求未完全加载完时切换到其他页面,可能会遇到浏览速度减慢,甚至浏览器卡顿的问题。
针对上述现象,首先需要确保文件服务实例资源和网络带宽充足。其次,您可以参考本文档,为文件请求配置独立的地址,以防止文件请求阻塞其他接口请求。
单机环境
提示
如果文件存储独立地址采用 http/https 的默认 80/443 端口,在相关环境变量配置时,不需要指定其地址中默认的 80/443 端口。
系统单访问地址
这里以当前系统访问地址为 http://hap.domain.com
,新增文件独立地址 http://file.domain.com
为例
配置步骤
-
修改微服务
docker-compose.yaml
配置文件version: '3'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-community:6.1.2
environment:
ENV_ADDRESS_MAIN: "http://hap.domain.com"
ENV_APP_VERSION: "6.1.2"
ENV_API_TOKEN: "******"
ENV_FILE_DOMAIN: "http://file.domain.com" # 新增变量,指定文件独立地址
ENV_FILE_ADDRESS_MAIN: "http://file.domain.com" # 新增变量,指定文件独立地址
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc:3.0.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9000:9000 # 新增端口映射,将容器内的 9000 端口映射到宿主机上
command:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node1018-python36
environment:
<<: *app-environment
doc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-doc:1.2.0
environment:
ENV_FILE_INNER_URI: "sc:9000" # 修改为连接sc服务的文件存储服务端口新增变量配置说明:
ENV_FILE_DOMAIN
:文件存储服务指定文件独立地址ENV_FILE_ADDRESS_MAIN
:微服务指定文件独立地址- 如果文件独立地址采用 http/https 的默认 80/443 端口,在以上两个变量配置时,不需要指定其默认的 80/443 端口
新增端口映射说明:
- 9000:9000
将容器内的文件服务端口映射到宿主机上,以允许下一步 nginx 代理可以访问到文件服务
doc 服务变量修改说明:
ENV_FILE_INNER_URI
,默认变量值修改为sc:9000
-
重启微服务
-
为文件独立地址新增 nginx 跨域代理配置,代理配置文件可参考下方配置
upstream file {
server 192.168.0.10:9000; # 指定后端微服务的IP及映射到微服务宿主机上的文件存储端口
}
server {
listen 80;
server_name file.domain.com; # 指定文件独立地址
access_log /data/logs/weblogs/file.domain.com.log main; # 日志路径,可自定义
error_log /data/logs/weblogs/file.domain.com.error.log; # 日志路径,可自定义
location / {
if ($request_method = OPTIONS) {
return 204 "";
}
proxy_set_header HOST $http_host;
proxy_pass http://file;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Headers authorization,content-type;
add_header Access-Control-Allow-Origin "http://hap.domain.com"; # 指定 HAP 系统访问地址
}
} -
代理配置完成后,清理浏览器缓存。随后可通过浏览器开发者工具,在 Network 中看到文件相关的请求是否已经走独立地址。