分布式文件系统FastDFS安装配置及fastdfs-nginx-module整合Nginx实现网页访问

1,438 阅读3分钟

由于最近做项目需要用到文件系统,选择了fastdfs+nginx 但是在安装过程中出现了各种报错,在此把踩过的坑都记录一下,下面我介绍的方法,是我亲自验证过的,只要安装的版本和我的一致应该是没问题的。安装过程出现报错大部分都是版本问题,请更换版本安装,尽量选择新版本

1.下载所需的软件以及工具包

fastdfs作者的github:github.com/happyfish10… 所需的所有软件包都可以在这里下载

我安装的对应的版本: fastdfs-6.07 fastdfs-nginx-module-1.22 nginx-1.10.1

下载对应软件包 下面是所需软件的下载地址

fastdfs v6.07

github.com/happyfish10…

image-20211209083103614.png

Fastdfs-nginx-module v1.22

github.com/happyfish10…

image-20211209101441171.png libfastcommon v1.0.53

github.com/happyfish10…

image-20211209083332152.png

nginx 1.10.1

nginx.org/download/ng…

image-20211209083453661.png

下面开始安装

/usr/local/src 目录下新建fastdfs 文件夹 用于存放安装所需的所有软件包源码

[root@VM-16-12-centos ~]# mkdir /usr/local/src/fastdfs
[root@VM-16-12-centos ~]# cd /usr/local/src/fastdfs/
[root@VM-16-12-centos fastdfs]#

首先安装基础环境

yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

下载fastdfs安装所需软件包 下面是所有软件包 请自行前往上面提供的链接下载

image-20211209103208043.png 下面开始安装

首先安装libfastcommon

tar -zxvf libfastcommon-1.0.53.tar.gz #解压软件包
cd libfastcommon-1.0.53/ # 进入目录
./make.sh  #编译
./make.sh install # 安装

验证是否安装成功

image-20211209090103427.png 添加软连接

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

安装fastdfs

tar -zxvf fastdfs-6.07.tar.gz #解压
cd fastdfs-6.07/ #进入解压目录
./make.sh #编译
./make.sh install #安装

fastdfs 默认安装在 /etc/fdfs 目录下

cd /etc/fdfs/ ##进入安装目录 
#将下列三个配置文件全部cp 一份
cp storage.conf.sample  storage.conf
cp tracker.conf.sample tracker.conf
cp client.conf.sample  client.conf

配置tracker服务

新建fastdfs 数据的存放目录 下面是我存放的位置

image-20211209091431415.png

修改tracker的配置文件 需要修改下面几个配置项

base_path = /home/yuqing/fastdfs 修改为 base_path = /usr/fdfs_data (对应你自己的目录)

http.server_port = 8080 修改为 http.server_port = 8888 (http服务对应的端口)

启动 tracker 服务

image-20211209092144873.png

配置storage

vim /etc/fdfs/storage.conf

修改下面配置项

base_path = /home/yuqing/ 修改为 base_path = /usr/fdfs_data

store_path0 = /usr/fdfs_data/storage 修改为 store_path0 = /usr/fdfs_data/storage

tracker_server = 192.168.1.2:22122 修改为 tracker_server = 服务器ip:22122

http.server_port = 8080 修改为http.server_port = 8888

启动storage 服务

image-20211209092852821.png

下面配置 client 服务 测试上传功能

vim /etc/fdfs/client.conf

修改下面配置项

base_path = /usr/fdfs_data

tracker_server = 192.168.0.196:22122 修改为 tracker_server = 服务器ip:22122

http_tracker_server_port =80 修改为http_tracker_server_port = 8888

测试上传文件

image-20211209093245661.png

image-20211209093522679.png 将fastdfs源码conf目录下的两个配置文件复制到/etc/fdfs目录下

cp /usr/local/src/fastdfs/fastdfs-6.07/conf/http.conf  /etc/fdfs/
 cp /usr/local/src/fastdfs/fastdfs-6.07/conf/mime.types  /etc/fdfs/

配置Nginx 整合fastdfs-nginx-module访问

配置 fastdfs-nginx-module

tar -zxvf fastdfs-nginx-module-1.20.tar.gz ##解压
tar -zxvf nginx-1.10.1.tar.gz 
cd ./nginx-1.10.1
./configure --prefix=/usr/local/nginx  --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-1.22/src
make 
make install

修改 fastdfs-nginx-module-1.22/src/mod_fastdfs.conf 配置文件 并复制到 /etc/fdfs 目录

修改下列几项

base_path=/usr/fdfs_data

tracker_server=服务器ip:22122 对应tracker服务的ip

store_path0=/usr/fdfs_data/storage

url_have_group_name = true

配置nginx 代理

vim /usr/local/nginx/conf/nginx/conf

nginx.conf

server {
        listen       8888;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /group1/M00{
                 ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

启动nginx

/usr/local/nginx/sbin/nginx

测试上传一张图片 image-20211209103008068.png

使用nginx 访问上传的图片

image-20211209103101268.png 安装完成!!!

下面开始添加图片压缩功能

重新进入nginx 源码目录

yum install gd gd-devel ## 安装所需依赖
cd /usr/local/src/fastdfs/nginx-1.10.1
/usr/local/nginx/sbin/nginx -s stop #停止nginx服务
./configure --prefix=/usr/local/nginx --with-http_image_filter_module \
  --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-1.22/src/
  make
  make install 

查看nginx安装的模块

  /usr/local/nginx/sbin/nginx -V

image-20211209105544164.png 修改nginx配置文件

 location ~group1/M00/(.+)_(\d+)x(\d+)\.(jpg|gif|png){
             ngx_fastdfs_module;
             set $w $2;
             set $h $3;
          image_filter resize $w $h;
            image_filter_buffer 10M;
          rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break;
  }
 location ~/group([0-9])/{
        ngx_fastdfs_module;
}

重新启动nginx

image-20211209105840511.png

访问上传的图片
image-20211209105948515.png

大功告成!!!!