您的位置:首页 > 运维架构 > Nginx

搭建FastDFS分布式存储环境(使用Nginx模块)

2016-05-18 10:47 661 查看
原文地址:搭建FastDFS分布式存储环境(使用Nginx模块) 作者:壹頁書

上次搭建FastDFS使用的版本是v4.05
http://blog.itpub.net/29254281/viewspace-1283539/
这个版本已经比较旧了

最新的版本是v5.04,由于作者重构了代码,所以安装过程还是有一些不一致.

最新版本下载地址:
http://sourceforge.net/projects/fastdfs/files/
安装可以参考压缩包内的INSTALL文件。

实验还是搭建一个FastDFS环境,并增加Nginx模块

所用软件:

FastDFS_v5.04.tar.gz

libfastcommon-master.zip

fastdfs-nginx-module_v1.16.tar.gz

nginx-1.6.2.tar.gz



与之前版本不同的是,v5.04首先需要安装libfastcommon

下载地址:
https://github.com/happyfish100/libfastcommon.git
1.安装libfastcommon

在每一台服务器上,解压libfastcommon,进入libfastcommon-master目录执行

./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

2.安装FastDFS主程序

这个版本似乎已经不需要libevent依赖

在每台服务器,解压缩FastDFS_v5.04.tar.gz,进入FastDFS目录

执行

./make.sh

./make.sh install

如果上步的软链接创建成功,就应该会非常顺利。

配置Tracker服务器(192.168.1.70)

vim /etc/fdfs/tracker.conf文件,修改如下内容

base_path=/tracker

然后执行命令

fdfs_trackerd tracker.conf

配置Storage服务器(192.168.1.80,192.168.1.30)

vim /etc/fdfs/storage.conf

group_name=group1

base_path=/storage

store_path0=/storage

tracker_server=192.168.1.70:22122

然后执行命令

fdfs_storaged storage.conf

执行测试,修改Tracker服务器192.168.1.70的配置文件/etc/fdfs/client.conf

tracker_server=192.168.1.170:22122

执行命令

[root@mysql1 fdfs]# fdfs_upload_file client.conf /home/nginx/FastDFS_v5.04.tar.gz

group1/M00/00/00/wKgBHlQvrQGARrS6AAU9tcFAzok.tar.gz

3.解压fastdfs-nginx-module

FastDFS通过Tracker服务器,将文件放在Storage服务器存储,

但是同组之间的服务器需要复制文件,有延迟的问题.

假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,

这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误

这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

修改fastdfs-nginx-module的config文件

原来的内容是

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

vim /home/nginx/fastdfs-nginx-module/src/config,修改为

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

各个版本的位置并不统一.所以需要根据自己的版本修改位置。

4.安装nginx

在每个Storage服务器上安装Nginx
http://blog.itpub.net/29254281/viewspace-1283760/
yum -y install gcc automake autoconf libtool make gcc-c++ pcre* zlib openssl openssl-devel

增加fastdfs-nginx-module模块

./configure \

--prefix=/home/nginx/nginx-1.6.2 \

--sbin-path=/home/nginx/nginx-1.6.2/nginx \

--conf-path=/home/nginx/nginx-1.6.2/nginx.conf \

--pid-path=/home/nginx/nginx-1.6.2/nginx.pid \

--with-http_ssl_module \

--add-module=/home/nginx/fastdfs-nginx-module/src

make -j `cat /proc/cpuinfo | grep processor| wc -l` && make install

复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs

cp /home/nginx/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

修改该配置文件

group_name=group1

tracker_server=192.168.1.70:22122

store_path0=/storage

base_path=/storage

复制FastDFS的配置到/etc/fdfs



修改Nginx配置文件

location /M00 {

root /storage;

ngx_fastdfs_module;

}

在/storage目录下创建软连接,将其链接到实际存放数据的目录,

[root@mysql2 storage]# pwd

/storage

[root@mysql2 storage]# ln -s data/ M00

创建软链接的好处是方便多目录的管理



启动Nginx,就可以使用HTTP下载了.

注意事项:

1.FastDFS各个版本安装方式有差别,需要阅读INSTALL文件

2.FastDFS各个组件的默认位置可能不同,需要按照版本创建相应的软链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: