KkFileView4.1.0部署文档

先看下官方文档:kkFileView - 在线文件预览

环境要求中的JDK8如果没有的,需先安装JDK8,这里不做展示。

第二个office相关环境要求在linux中会自动下载安装,不用管。

1、下载地址

Linux 或 MacOS 版:

https://kkfileview.keking.cn/kkFileView-4.1.0.tar.gz

Windows版

https://kkfileview.keking.cn/kkFileView-4.1.0.zip

Docker 离线文件

https://kkfileview.keking.cn/kkFileView-4.1.0-docker.tar

当然也可以通过其他方式获取安装包,这里略过。

以下以linux下安装为例进行安装部署

2、解压

自行选择目录

tar -zxvf kkFileView-4.1.0.tar.gz

3、修改配置

解压后的文件,/root/kkFileView-4.1.0/config/application.properties

这里的大部分配置使用默认配置即可,也可以根据实际需求进行修改,如服务器做了端口限制,可以在这里修改kkFileView的启动端口(默认启动端口为8012)

#server.port = ${KK_SERVER_PORT:8012}

server.port = ${KK_SERVER_PORT:8107}

4、启动

/root/kkFileView-4.1.0/bin
sh ./startup.sh

顺利的话可以通过日志/root/kkFileView-4.1.0/log/kkFileView.log看到kkFileView服务已正常启动。

当然了,一般都不会正常!

5、启动遇到的问题

问题关键日志:

启动报错:kkFileView启动office组件失败,请检查office组件是否可用

详细日志:

这里详细日志的最后部分Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=2001' is already running; pid 95162迷惑性很强,给人端口占用的错觉,但是实际上这里跟端口占用没关系,主要的问题是office组件问题(呵呵)。

但是前面的官方文档已经指出,Linux不需要单独安装office组件,会自动安装,那这里怎么会报错呢?

一开始我也以为是office组件问题,百度了很多都是从组件问题出发解决问题,而忽略了正确答案,我这里是通过xshell远程连接服务器进行kk服务启动,xshell弹出提示

一开始没有在意这个,以为只是xshell的提示而已,就选择了否关闭了这个弹框。后面依然是按照组件问题百度,结果一直没有解决,后面尝试按照这个弹框的提示关闭了会话属性,kkFileView服务就启动成功了。。。。有知道原因的大神解释下为什么!!!

6、Nginx代理问题

nginx代理后,图片能正常预览,但是pdf等文件预览失败

在nginx中加了以下代理:

location /kkFileView/ {

proxy_pass http://ip:8107/;

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 REMOTE-HOST            $remote_addr;

proxy_set_header X-Forwarded-Proto      $scheme;

proxy_set_header Content-Type $upstream_http_content_type;

     proxy_set_header Content-Length $upstream_http_content_length;

     proxy_set_header Content-Disposition $upstream_http_content_disposition;

proxy_redirect off;

}

我的kk服务启动端口是8107,nginx监听端口为8106

当访问未经过nginx代理的url时,图片预览正常

http://ip:8107/onlinePreview?url=aHR0cDovLzEwLjIwLjE2LjE2Njo4MTA2L2xjbXMvZmlsZS9zZXJ2ZXIvc3RhdGljLzY3MzQ3Njc4Yjc2MDNmZWQ2YTgwNTQ4NS5qcGc%3D

当访问经过nginx代理的url时,图片预览也正常

http://ip:8106/kkFileView/onlinePreview?url=aHR0cDovLzEwLjIwLjE2LjE2Njo4MTA2L2xjbXMvZmlsZS9zZXJ2ZXIvc3RhdGljLzY3MzQ3Njc4Yjc2MDNmZWQ2YTgwNTQ4NS5qcGc%3D

但当预览pdf等其他文件时就出现了异常

当访问未经过nginx代理的url时,pdf文件预览正常

当访问经过nginx代理的url时,就出现了异常

根据我们的nginx配置,当访问http://ip:8106/kkFileView/onlinePreview?url=aHR0cDovLzEwLjIwLjE2LjE2Njo4MTA2L2xjbXMvZmlsZS9zZXJ2ZXIvc3RhdGljLzY3MzU3MWE4Yjc2MDNmZWQ2YTgwNTQ4Ni5wZGY%3D&officePreviewType=pdf&tifPreviewType=jpg&tifPreviewType=jpg(最后这里是jpg是因为kk默认将office类型文档,默认为图片,可配置为pdf(预览时也有按钮切换))时,这里应该被代理到http://ip:8107/onlinePreview?url=aHR0cDovLzEwLjIwLjE2LjE2Njo4MTA2L2xjbXMvZmlsZS9zZXJ2ZXIvc3RhdGljLzY3MzU3MWE4Yjc2MDNmZWQ2YTgwNTQ4Ni5wZGY%3D&officePreviewType=pdf&tifPreviewType=jpg&tifPreviewType=jpg但是从浏览器调试看这里被转到了80端口,这里明显出现了问题,这是因为当使用nginx代理时,也需要在kkFileView的配置中做相对应的修改

修改kk配置后重启kk服务,重新访问代理后的url即可正常预览pdf等其他文件了

上一篇:YashanDB 23.2.3安装过程,并使用DBeaver进行连接


下一篇:JDBC-Mysql 时区问题详解