目 录CONTENT

文章目录

kkFileView部署https服务,访问http图片资源异常

成培培
2024-10-29 / 0 评论 / 0 点赞 / 27 阅读 / 0 字

kkFileView介绍

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等

官网:https://kkfileview.keking.cn/

源码:https://gitee.com/kekingcn/file-online-preview

docker部署

这里准备使用docker部署,并且通过nginx转发配置https,以下是启动脚本:

docker run --name kkfile -p8012:8012 \

-e KK_BASE_URL="https://home.chengpei.top:8443/kkfile" \

-e KK_CONTEXT_PATH="/kkfile" \

-d keking/kkfileview:4.1.0

其中比较重要的两个参数是KK_BASE_URL、KK_CONTEXT_PATH

KK_BASE_URL: 提供预览服务的地址,如果使用nginx等反向代理,需要手动设置为通过nginx访问预览服务的地址,默认值空

KK_CONTEXT_PATH: kkFileView运行时tomcat的ServletContext,默认值:/

其他的一些配置参数可以参考源码中的配置项:https://gitee.com/kekingcn/file-online-preview/blob/master/server/src/main/config/application.properties

因为我这里要配置Nginx访问,为了方便转发请求配置了统一的前缀/kkfile,然后Nginx里配置SSL证书,以及转发的路由即可

location /kkfile {

	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_set_header X-NginX-Proxy true;

	proxy_pass http://172.20.0.12:8012;

}

配置好后即可预览,使用方法参数官网文档:https://kkfileview.keking.cn/zh-cn/docs/usage.html

预览http图片问题

使用过程中发现一个奇怪的问题,我的kkfile地址是https的,预览的图片是http的,结果预览时自动把图片地址替换为了https,所以访问不到,如图:

但是预览PDF文件就没有此问题,观察后发现pdf文件会在服务端获取,转发到游览器预览,但是图片会把图片访问地址直接丢给游览器,我用的chrome游览器,刚好新版本的谷歌浏览器为了加强安全性,会改协议头将http改为https导致这个问题,实测换其他游览器就不会这样,具体参考这个bug:https://gitee.com/kekingcn/file-online-preview/issues/IAF4GP

0

评论区