Nginx访问FastDfs的文件的操作记录
本人实际业务是kkfileview在线预览fastdfs的文件(包括jpg、pdf等格式)。这里不详细讲kkfileview和fastdfs使用,我也不熟悉。
1.kkfileview的安装
1.1 拉取镜像: docker pull keking/kkfileview
1.2 运行: docker run -dit -p 8012:8012 keking/kkfileview
https://blog.csdn.net/qq_33697094/article/details/126076565(我使用的是这里面的docker方法,简单且方便)
2.FastDfs的安装
我使用的是FastDfs是已经装好的,下面连接仅供参考
https://www.cnblogs.com/jichi/p/11315611.html
https://blog.csdn.net/m0_60215634/article/details/122440986(这篇中还介绍fastDfs和nginx的一些配置,可参考,我后续会补充我这边成功的步骤)
3.Nginx的安装
我使用的nginx也是安装好的,下面连接仅供参考
https://blog.csdn.net/t8116189520/article/details/81909574(建议使用这个连接)
https://blog.csdn.net/shallow72/article/details/123878716(这里面有四种安装方式)
4.Nginx访问FastDfs下文件
4.1 安装fastdfs-nginx-module
sudo apt-get install git
sudo git clone https://github.com/happyfish100/fastdfs-nginx-module.git
4.2 重新编译nginx
- 进入nginx的解压目录
- 查看nginx版本信息:/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --with-http_gzip_static_module
一般nginx安装后都在/usr/local/nginx
- 复制上面的 configure arguments:后面的内容,在后面加上-add-module=/root/fastdfs-nginx-module/src
结构是: ./configure + configure arguments:后面的内容 + -add-module=/root/fastdfs-nginx-module/src
./configure --with-http_gzip_static_module -add-module=/root/fastdfs-nginx-module/src
注:/root/fastdfs-nginx-module/src 这个为4.1步骤中的安装路径
- 编译nginx的执行文件
在nginx的解压目录下,执行: make 就可以重新编译,会在当前目录下生产一个objs文件夹,里面的nginx就是新编译后的执行文件
不要执行 make install 会覆盖之前的很多东西,这个是编译安装的意思
- 查找nginx可执行程序
find / -name "nginx" -type f -executable -print
我这边只找到了两个文件,上面的是原来旧的nginx文件,下面是新的nginx文件,用新的替换旧的
cp /home/nginx-1.16.1/objs/nginx /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx
/home/nginx-1.16.1/objs/nginx
- 测试新的nginx是否正确:/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
- 重启nginx:/usr/local/nginx/sbin/nginx
- 检查nginx版本和参数:/usr/local/nginx/sbin/nginx -V
看看是否加上了-add-module=/root/fastdfs-nginx-module/src
4.3 配置fastdfs-nginx-module
- 进入fastdfs-nginx-module的src下,复制配置文件(mod_fastdfs.conf)到/etc/fdfs中
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /ete/fdfs
/root/fastdfs-nginx-module/src 是4.1步骤中安装路径
/etc/fdfs是fastDfs安装后的配置文件路径
- 修改mod_fastdfs.conf配置文件
tracker_server=当前服务器ip:22122
url_have_group_name = true (设为true)
store_path0=/var/data/fastdfs-storage/store (这个可以从/etc/fdfs/storage.conf中的base_path复制过来,此为参考)
- 将http.conf和mime.types复制到/etc/fdfs中
注:我的存放在/opt/fastdfs-master/conf下,应该是fastdfs安装时创建的,需要看看fastdfs安装教程
- 创建软连接
/var/data/fastdfs-storage/store/data/ 是fastDfs的上传文件的存放路径,点开data后就是00、01、02等文件夹
ln -s /var/data/fastdfs-storage/store/data/ /var/data/fastdfs-storage/store/data/M00
- 修改nginx的配置
打开/usr/local/nginx/conf/nginx.conf,加上以下配置
location ~ /group([0-9])/M00 {
ngx_fastdfs_module;
}
- 重启nginx、fastDfs
- 游览器测试能否打开fastDfs文件,前提是文件服务器中已存在附件
http://服务器ip:80/group1/M00/00/00/rBAc6mSPu_uAcgGFAAuCemsChq8032.pdf
group1是我java代码中配置的,主要是/group1/M00后面的,就是文件在fastDfs中存放路径,看看步骤12
题外话
kkfileview的内置了openoffice,使用预览模式会先下载文件,再打开。我就是看了我的报错信息,文件下载失败,以及我之前做过nginx的一些配置和访问,所以看到文件下载失败的url时才联想到存在nginx访问fastDfs文件的可能。
参考连接
https://blog.csdn.net/jun2016425/article/details/104693761(这个看到2.3之前就行了,我就是这步后卡死)
https://www.cnblogs.com/Lcch/p/16153333.html(然后后面的步骤可参考这个,从配置fastdfs-nginx-module开始)