onlyoffice在线预览加载优化

背景:

使用容器部署onlyoffice到linux服务器,使用内网访问速度还可以接受,但是如果放到外网路径访问起来,速度就会很慢,甚至加载失败;

优化方案:

预览的过程排除网络因素,可以发现打开的过程其实是加载了很多静态文件

每次访问都需要从容器中拿出,容器和宿主机之间的网络本身也会有限制,于是想着是把容器中的静态文件放到linux服务器的本地文件;

核心思想:将容器中的静态文件放到宿主机,调用的时候读取宿主机,而不是容器内部;

过程:

一次预览请求-〉

访问到onlyoffice容器--〉

容器准备加载font文件-〉

容器nginx转发到宿主机nginx-〉

宿主机nginx代理到本地文件

1、复制容器中的font文件

docker cp [容器]:/var/www/onlyoffice/documentserver/fonts 本地路径

2、配置宿主机的nginx,增加配置转发到本地文件,重启nginx

复制代码
location /officestatic/ {
        alias /home/hdfs/onlyoffice/fonts/;
        autoindex on;
        #允许跨越的ip,也就是onlyoffice的容器访问ip
        add_header Access-Control-Allow-Origin 'ip:8088';
}

测试:http://192.168.1.166:9000/officestatic/1.txt

alias配置的是转发,还有root的写法

root是直接拼接,alias是转发,这个需要注意;

例如/opt/pic/wnd.jpg

复制代码
访问地址: http://ip:9000/pic/wnd.jpg
通过nginx配置
server {
  listen 9000;
  server server_pic;
  location /pic {
    root /opt;
    autoindex on;
  }
}

或者
server {
  listen 9000;
  server server_pic;
  location /pic {
    alias /opt/pic;
    autoindex on;
  }
}

3、配置onlyoffice容器内的nginx转发

复制代码
 cd /etc/nginx/includes
vim ds-docservice.conf 
location ~* /8.0.1-31/fonts(.*){
    return http://ip:9000/officestatic$1?$args;
}

4、重启容器,重启nginx

docker restart 容器名

进入onlyoffice重启nginx,nginx -s reload

5、验证加载速度是否提升,重新打开一个预览,加载速度是否提升;

相关推荐
莫比乌斯之梦5 小时前
使用 Docker 运行 Jenkins:快速搭建高效 CI/CD 环境指南
ci/cd·docker·jenkins
程序设计实验室6 小时前
从挖矿木马入侵到 Docker Rootless 加固,我的服务器安全复盘
linux·docker
学到头秃的suhian14 小时前
Docker基础扫盲
运维·docker·容器
袁袁袁袁满15 小时前
Docker后台日志和容器日志怎么查看?
linux·运维·服务器·docker·容器
学到头秃的suhian16 小时前
Docker相关命令
docker·容器
请为小H留灯17 小时前
Docker 命令速通指南:从入门到封神的 100 + 必学指令,一篇搞定容器全操作
运维·docker·容器
蘼子18 小时前
Windows装Docker至D盘/其他盘(最新,最准确,直接装)
windows·docker·容器
tod11318 小时前
Redis Sentinel 高可用架构:从原理到 Docker 部署全解析
数据库·redis·docker·架构·sentinel
没有bug.的程序员18 小时前
本地开发环境优化深度实战:Docker Compose 编排内核、依赖服务治理与极速环境搭建指南
运维·docker·容器·compose·本地开发·编排内核·依赖服务治理
予枫的编程笔记18 小时前
【Docker高级篇】吃透容器编排:Swarm vs K8s 核心差异,为后续K8s学习打牢基础
docker·云原生·kubernetes·linux内核·容器编排·容器技术·运维技术