准备工作

环境 : centos7

下载fastDFS

wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

下载完成之后可以更改tar包的名字

mv V6.06.tar.gz fastdfs-6.06.tar.gz
mv V1.22.tar.gz fastdfs-nginx-module_v1.22.tar.gz
mv V1.0.43.tar.gz libfastcommon-1.0.43.tar.gz

更改之后如下图所示:

QQ20200430-162352.png

下载nginx

wget http://nginx.org/download/nginx-1.18.0.tar.gz

安装

安装libevent

yum -y install libevent

接着 找到 fastDFS 目录下的 libfastcomm-1.0.43.tar.gz 对其解压

tar -zxvf libfastcommon-1.0.43.tar.gz 

解压完成之后,进入解压后的文件

cd libfastcommon-1.0.43

查看一下里面有什么文件
QQ20200430-152106.png

接着 运行make.sh 进行编译

./make.sh

等待编译完成,然后对其安装,执行如下命令

./make.sh install

安装完成之后,切换到 usr/lib64 目录

cd /usr/lib64/

执行如下命令

ll libfast*

QQ20200430-152336.png

找到lbfastcommon.so 这个文件,需要将它复制到 usr/lib 目录下
执行命令

cp -rn libfastcommon.so /usr/lib

安装 tracker

切换到 fastdfs-6.06.tar.gz 所在的目录
解压 fastdfs-6.06.tar.gz

tar -zxvf fastdfs-6.06.tar.gz 

解压完成之后,切换到目录里面进行编译

cd fastdfs-6.06
./make.sh 

等编译完成之后,执行安装命令

./make.sh install

接着切换到 fastdfs-6.06/conf/ 目录

cd conf/

需要把里面的配置文件复制到/etc/fdfs/ 目录

cp * /etc/fdfs/

切换到 /etc/fdfs/ 进行查看
QQ20200430-153554.png

修改配置文件 tracker.conf

vim tracker.conf

QQ20200430-153755.png

修改了base_path,然后退出保存。

退出之后,在根目录下创建刚刚修改的base_path 里面定义的目录,命令如下:

cd /
mkdir /fastdfs/tracker -p

查看是否创建成功
QQ20200430-154052.png

fastdfs 下继续创建两个文件夹,后续会使用到的:

mkdir storage
mkdir client

QQ20200430-154204.png

做完这一步操作之后,回到 /usr/bin/ 目录

cd /usr/bin/

QQ20200430-154336.png

在这里找到fdfs_trackerd文件,而这个文件就是用来启动tracker的文件。
执行启动命令:

fdfs_trackerd /etc/fdfs/tracker.conf

假如你的tracker.conf配置文件发生了变化,那么至需要在这个命令后面加一个restart即可:

fdfs_trackerd /etc/fdfs/tracker.conf restart

QQ20200430-154519.png

到此为止,fastDFS中的tracker服务已经OK了。

安装storage

切换目录到/etc/fdfs/上面我们已经修改了tracker.conf,接着找到storage.conf文件

cd /etc/fdfs/

QQ20200430-154800.png

编辑storage.conf文件

vim storage.conf
group_name=group1 // 组织名,改成你想要的即可
store_path0=/home/yuqing/fastdfs//图片存储路径
tracker_server=192.168.209.121:22122//IP配置为你当前的服务器ip,端口是默认的可不做修改
base_path=/fastdfs/storage // 这个目录路径在前面已经创建过的,在这里就直接写这个即可

这个文件就需要该这几个配置项,改为就直接保存退出。
切换到 /usr/bin/目录可以用来启动 storage 服务

cd /usr/bin/

QQ20200430-160537.png

找到 fdfs_storaged
执行命令

fdfs_storaged /etc/fdfs/storage.conf

如果storage.conf有改动,可以重启storage服务就直接在上面的命令后面加一个restart

fdfs_storaged /etc/fdfs/storage.conf restart

QQ20200430-160653.png

启动完成之后可以查看一下

ps aux | grep storage

QQ20200430-160741.png

到此为止,fastDFS中的storage服务也已经OK了。

以上storage服务和tracker服务都启动了,接着做个小测试。
在做这测之前,还需要几件事

配置client

首先切换到/etc/fdfs/目录
QQ20200430-160926.png

修改client.conf配置文件

vim client.conf
base_path=/fastdfs/client //这个目录也是之前已经创建好了的
tracker_server=10.211.55.4:22122 // IP修改为你的服务器IP 端口默认的可不做修改

修改完成之后,退出保存.

测试

下面就可以做测试了。
首先还是要切换目录到/usr/bin/

cd /usr/bin/

QQ20200430-161309.png

找到fdfs_test这个服务就可以做相应的测试,记得事先准备一张测试图片。
我这里事先准备了一张图片在根目录下
切换到home目录查看

cd /home/

QQ20200430-161544.png

执行命令

/usr/bin/fdfs_test /etc/fdfs/client.conf upload QQ20200429-170837.png 

看见如下就代表上传成功了
QQ20200430-161654.png

说明:
上图可以看见我们曾配置的 组织名 group_name(group1)
还有文件名,以及访问图片的URL

到这一步虽然有了这个图片的url 但是我们还是访问不到这个图片的,因为我们并没有配置对应的web服务器,接下来会配置nginx

思考一个问题,由上面的图片已经上传成功了,那这图片到底存储在哪里了呢?
这个取决于你的配置文件里面的配置,我这里是在这个路径下:

/fastdfs/storage/data/00/00/

QQ20200430-161915.png

配置Nginx

切换到目录/root
找到对应的fastdfs-nginx-module_v1.22.tar.gz
对其解压

cd /root/
tar -zxvf fastdfs-nginx-module_v1.22.tar.gz 
cd fastdfs-nginx-module-1.22/src/

修改config文件

vim config

QQ20200430-163448.png

删掉标红的两个/local ,因为和我们配置的路径不一致。

修改完成之后,保存退出。
操作完以上步骤之后,切换目录到home包下:
QQ20200430-163650.png

在安装nginx之前要先安装必要的一些库

yum install gcc-c++
yum install pcre prce-devel
yum install zlib zili-devel
yum install penssl openssl-devel

接着解压nginx

tar -zxvf nginx-1.18.0.tar.gz 

进入nginx
QQ20200430-164002.png

接下来需要运行一段配置文件

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/root/fastdfs-nginx-module-1.22/src(这里填写你的fastdfs-ngix-module的路径)

复制在nginx下回车就可以运行
QQ20200430-164250.png

接着make编译一下

make

编译完成之后,执行安装命令

make install

QQ20200430-164425.png

安装完成之后,在/usr/local/目录下就会存在一个nginx文件夹
QQ20200430-164510.png

做到这一步,还需要一个fastdfsnginx的 “桥梁配置文件”
切换目录到

cd /root/fastdfs-nginx-module-1.22/src/

QQ20200430-164645.png

找到mod_fastdfs.conf文件
把它复制到/etc/fdfs/

cp mod_fastdfs.conf /etc/fdfs/

fastdfs下面创建 tmp 文件夹

cd /fastdfs/
mkdir tmp

QQ20200430-165127.png

进入/etc/fdfs/目录进行查看并且使用vim修改这个文件

cd /etc/fdfs/
vim mod_fastdfs.conf 

需要修改以下配置

base_path=/fastdfs/tmp
tracker_server=10.211.55.4:22122 //配置你的服务器ip
group_name=group1  // 和之前配置的组织名要一致
url_have_group_name = true // 默认为关闭的 这里修改为true

修改完成之后保存退出。

接着到/usr/local/nginx/conf目录

cd /usr/local/nginx/conf/

修改nginx.conf文件

vim nginx.conf

添加以下内容在nginx.conf文件

server{
       listen      88;
       server_name 10.211.55.4;

       location /group1/M00 {
           ngx_fastdfs_module;
       }

   }

接着可以进入sbin目录进行nginx的启动了
执行命令先检查一下

cd ../sbin/
./nginx -t

QQ20200430-170044.png

在这里提示/var/temp/nginx/目录不存在
执行以下命令

mkdir /var/temp/nginx -p

再次执行./nginx -t
QQ20200430-170204.png

发现没问题了,就可以直接启动nginx了,执行命令

./nginx

QQ20200430-170248.png

打开浏览器输入IP访问试试
QQ20200430-172357.png

说明 nginx 已经成功启动了!!!

注意:可能会有这个情况,ngxin正常启动,但是页面还是访问不了`nginx`页面,这是因为防火墙的出站入站策略,需要将`88`端口加入到入站策略里面,需要`88`端口可以被外部访问.

接着找一下开始上传成功的那个图片路径,复制到浏览器中访问一下。
QQ20200430-173044.png

突然发现还是访问不了这张图片,因为现在我们使用的是nginx的服务器,上文中有一个fastDFSnginx的桥梁配置文件,里面没有配置存放路径。
进入/etc/fdfs/目录,找到mod_fastdfs.conf文件,修改它

cd /etc/fdfs/
vim mod_fastdfs.conf 

需要修改成以下值:

store_path0=/fastdfs/storage

保存退出。
接着重启trackerstorage

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

QQ20200430-173435.png

再浏览器刷新刚刚的url进行查看!
QQ20200430-174653.png

到此,全文结束!

Last modification:December 21, 2022
If you think my article is useful to you, please feel free to appreciate