fastDFS丨分布式文件系统的基本搭建

最近毕设用到了fastDFS作分布式文件存储系统,因此在此记录fastDFS的基本部署过程(不说废话,硬核文)。下一篇文章将介绍Java中如何使用fastdfs进行文件(文件夹)上传与下载的操作。

一、必要的准备

1.1 下载fastDFS

https://github.com/happyfish100/fastdfs/releases

1.2 下载fastDFS所需的包库libfastcommon

https://github.com/happyfish100/libfastcommon/releases

1.3 fastdfs-nginx-module

https://github.com/happyfish100/fastdfs-nginx-module/releases

1.4 nginx

http://nginx.org/en/download.html

至此,fastdfs的前期必要准备已经做好。

二、fastdfs的安装

2.1 fastdfs与libfastcommon的安装

将两个包放到服务器中并解压

2.1.1 libfastcommon的安装

将其解压

tar -zxvf libfastcommon-1.0.39.tar.gz

安装gc++编译器(已安装可以无视)

yum -y install gcc-c++

进入libfastcommon包内将其编译并安装

cd libfastcommon-1.0.39
./make.sh
./make.sh install

libfastcommon.so 默认安装路径为/usr/lib64/libfastcommon.so,但FastDFS的lib目录是/usr/local/lib,所以需要创建快捷方式

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

至此,libfastcommon安装完毕

2.1.2 fastdfs的安装

回到root目录,解压fastdfs

cd ~
tar -zxvf fastdfs-5.11.tar.gz

进入fastdfs目录将其编译并安装

cd fastdfs-5.11
./make.sh
./make.sh install

完成后,fastdfs被安装到了

/etc/fastdfs

以上文件为配置的示例文件,需要我们手动更改为我们需要的配置,因此我们现将这三个文件复制出来备用

cd /etc/fdfs
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

至此,fastdfs安装完毕

三、fastdfs的配置

3.1 Tracker的配置

创建一个文件夹来保存tracker的日志文件

mkdir /opt/fastdfs_tracker

编辑 /etc/fdfs/tracker.conf

vi /etc/fdfs/tracker.conf

#启用配置文件(默认)
disabled=false 

#tracker端口号(默认)
port=22122

#刚才创建的tracker的日志目录
base_path=/opt/fastdfs_tracker 

#重新设定http端口号
http.server_port=6666

:wq

为tracker创建软连接

ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

启动tracker

service fdfs_trackerd start

查看进程状态

netstat -unltp|grep fdfs

  

进程状态正常,此时进入云平台开启安全组对应端口

将tracker加入开机启动

vi /etc/rc.d/rc.local

加入

service fdfs_trackerd start

至此,tracker配置完毕

3.2 storage的配置

 在tracker同级目录下创建两个目录存放文件

#log
mkdir /opt/fastdfs_storage

#实际文件存储位置
mkdir /opt/fastdfs_storage_data

修改/etc/fdfs/storage.conf

vi /etc/fdfs/storage.conf

 #启用配置文件(默认)
disabled=false

#组名
group_name=group1 

#设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
port=23000 

 #设置storage数据文件和日志目录
base_path=/opt/fastdfs_storage

#存储路径个数,需要和store_path个数匹配
store_path_count=1 

#实际文件存储路径
store_path0=/opt/fastdfs_storage_data 

#tracker 云服虚拟机ip地址+端口,不能写127.0.0.1
tracker_server=192.168.1.1:22122 

#设置 http 端口号
http.server_port=8888 

创建软引用

ln -s /usr/bin/fdfs_storaged /usr/local/bin

启动storage

service fdfs_storaged start

查看端口监听状态

netstat -unltp|grep fdfs

成功,此时我们进入中查看

cd  /opt/fastdfs_storage_data/data 

查看tracker和storage的关联状态

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

如无意外,应该能看到你刚才所配置的storage节点

至此,完成storage的配置

四、nginx与fastdfs-nginx模块的安装

fastdfs在4.0.5版本移除了自带http支持。因此我们需要自己搭建nginx对其进行反向代理

4.1 将第一步下载的nginx-1.8.1与fastdfs-nginx-module-1.20.tar放到云服虚拟机上

先安装以下依赖

yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

然后解压以上两个包

tar -zxvf nginx-1.8.1.tar.gz
tar -zxvf fastdfs-nginx-module-1.20.tar.gz

4.2 配置fastdfs-nginx-module

修改/usr/local/fastdfs-nginx-module-1.20/src/config

vi /usr/local/fastdfs-nginx-module-1.20/src/config

将以下两个属性修改为这个内容

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

4.3 编译安装nginx

进入nginx目录,对其编译安装

#进入nginx目录
cd nginx-1.8.1

#--prefix指定到/usr/local/nginx中
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.20/src

完成

紧接着编译与安装nginx

make
make install

至此,nginx安装完成

五、nginx对fastdfs的反向代理

第四步完成后,我们可以看到/usr/local/下多了nginx目录

5.1 配置反向代理

进入nginx的conf目录并修改配置文件

cd /usr/local/nginx/conf

vi nginx.conf

在配置文件的最后加入以下的配置

server{
    listen       9999;

      location ~/group1/M00 {
      root /opt/fastdfs_storage_data/data;
      ngx_fastdfs_module;
      }
}

5.2 配置fastdfs

然后进入FastDFS的安装目录/root/fastdfs-5.11目录下的conf目录,将http.confmime.types拷贝到/etc/fdfs目录

cd ~/fastdfs-5.11

cp -r conf/http.conf /etc/fdfs/
cp -r conf/mime.types /etc/fdfs/

把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录

cp -r /usr/local/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

这是/etc/fdfs选的所有配置文件

配置mod_fastdfs.conf

vi mod_fastdfs.conf

#保存日志目录
base_path=/opt/fastdfs_storage 

#tracker服务器的IP地址以及端口号,改为云服虚拟机的ip
tracker_server=192.168.1.1:22122 

#storage服务器的端口号
storage_server_port=23000 

#文件 url 中是否有 group 名
url_have_group_name = true 

# 存储路径
store_path0=/opt/fastdfs_storage_data

#设置组的个数
group_count = 3 



#在文件底部添加以下信息
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

建立 M00 至存储目录的符号连接

ln  -s  /opt/fastdfs_storage_data/data  /opt/fastdfs_storage_data/data/M00

5.3 启动nginx

/usr/local/nginx/sbin/nginx

打开云服虚拟机的安全组9999端口

访问 ip:9999

得到以下

至此 fastdfs 部署完毕

猜你喜欢

转载自blog.csdn.net/bbcckkl/article/details/88542348