fastdfs5.0.5+nginx1.7.9安装

因最近工作上需要,在项目引入了分布式文件系统。中间查看各种资料,发现国内关于分布式文件的资料好少,费了我不少功夫,特写博文以记录。

    分布系统中,一个很重要的问题就是文件的分布式存储。早期的方式就是用nfs,也可能还有其他的。使用nfs也有各种优缺点,这里就不扯淡了。然后典型分布式文件系统就是Google的gfs ,Hadoop 的hdfs , Ceph  , MogileFS , FastDFS (国人开发),还有淘宝 tfs ,gridfs MongoDB的一个内置功能 。 各自的优缺点和适用场景这里也不累赘了。查找下资料基本都有(不过都是12,11年发布的,新资料好少,这都三四年过去了不知道发展怎么样)

   经过三四天的各种查资料,和朋友讨论学习,中间还找到了开源中国的技术哥哥聊了一下。最后还是选择了 fastDFS,。 引用一下他人的话:    fastDFS 是一款类似Google FS的开源分布式文件系统,是纯C语言开发的。

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

官方论坛  http://bbs.chinaunix.net/forum-240-1.html

分布式文件系统FastDFS架构剖析   http://www.programmer.com.cn/4380/

   其他不多说了,开始fastDFS + nginx了  (以下部分大部分是原作者写的,大家可以直接查看原文 fastdfs+nginx)

原文中文章尾部提供了各种安装包

虚拟机环境 2台centos6.5
192.168.73.128 tracker.test.com tracker
192.168.73.129 s1.test.com    s1

1.      节点和关闭服务(未关闭貌似也没事)

  1. service iptables stop 

  2. chkconfig iptables off

  3. vi /etc/selinux/config

修改 selinux=disable      

2.      Tracker和storage上安装FastDFS


  1. yum install -y gcc gcc-c++

解压将安装包复制到/usr/local/src目录下
安装libfastcommon
#step 1. enterthe libfastcommon dir

        cd libfastcommon

 #step 2. make

        ./make.sh

#step 3. makeinstall

        ./make.sh install

安装FastDFS

#step 1. 更改make.sh文件中TARGET_CONF_PATH=/usr/local/FastDFS
#step 2. enter the FastDFS dir

        cd FastDFS

#step 3.execute:

         ./make.sh

#step 4. makeinstall

          ./make.sh install

3.      配置Tracker和Storage

修改/etc/fdfs/tracker.conf.sample另存为tracker.conf
Tracker:

      mkdir /mnt/fastdfs_tracker (数据存储)

         vim /etc/fdfs/tracker.conf

base_path=/mnt/fastdfs_tracker  (tracker.conf文件中找到base_path=/数据存放区)

         fdfs_trackerd /etc/fdfs/tracker.conf (启动服务 ,*重要提示,在Ubuntu14.04中到此处会报错误,本人在此跳入好大坑,之后处理无果,换系统之(centos6.5)

Storage:

    mkdir /mnt/fastdfs_storage_info

     mkdir /mnt/fastdfs_storage_data


base_path=/mnt/fastdfs_storage_info

store_path0=/mnt/fastdfs_storage_data
tracker_server=192.168.73.128:22122

以上三句打开/etc/fdfs/storeage.conf.sample文件找到修改自己对应的值

   fdfs_storaged /etc/fdfs/storage.conf  (启动存储节点


出错请查看日志:
/mnt/fastdfs_tracker/logs/tracker.log
/mnt/fastdfs_storage_info/logs/storage.log

4.      配置Storage (此步骤切记安装nginx在storage服务器上,tracker上安装无效) 

安装nginx依赖包

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

设置软连接(ps:可以将下面加入到/etc/rc.d/rc.local):(此处不知道是不是本人没用设置软连接成功,为之后埋下了大地雷,天坑

  1. ln -sv /usr/include/fastcommon /usr/local/include/fastcommon 

  2. ln -sv /usr/local/FastDFS/include/fastdfs /usr/local/include/fastdfs 

  3. ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

  4. ln -sv /usr/local/FastDFS/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so

  5. /usr/local/FastDFS/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart

注:linux64加载的是lib64目录因此设置软连接至lib64

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

  2. vi /etc/fdfs/mod_fastdfs.conf

tracker_server=192.168.1.50:22122#修改为tracker server信息

url_have_group_name= true #改为true

store_path0=/mnt/fastdfs_storage_data#改为数据存储路径,和storage.conf一样。

将安装包解压到/usr/local/src目录下

  1. cd /usr/local/nginx-1.7.8

  2. ./configure–prefix=/usr/local/nginx –add-module=/usr/local/fastdfs-nginx-module/src

  3. make &&make install  (本人在此处make的时候报错了,大家不用慌,记得看错误,我当时的错误差不多都是找不到.h .c等头文件,只需要在系统中用find / -name filename 找到文件复制到你自己的fastdfs-nginx-module/src/路径中,再次编译


修改nginx配置文件:

  1. vi/usr/local/nginx/conf/nginx.conf

复制代码

location /group1/M00 {
            root /mnt/fastdfs_storage_data;
            ngx_fastdfs_module;
}
安装nginx有问题,可以执行:  

  1. yum groupinstall"Development Tools"

  2. ldd $(which /usr/local/nginx/sbin/nginx)

命令详解:

Tracker server启动

  1. /usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf

Storage server启动

  1. /usr/local/FastDFS/bin/fdfs_storaged /etc/fdfs/storage.conf

查看是否启动成功

  1. netstat -ntpl | grep fdfs

Storage server启动nginx

  1. cd /usr/local/nginx/sbin

  1. ~./nginx

Nginx.conf

不打开直接下载文件:
location/ 
{
if($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ 
add_headerContent-Disposition: 'attachment;';
}
}

到此基本fastDFS安装就结束了 ,之后再使用过程在记录 。 在弄分布式文件系统的整个过程,系统中还安装过hdfs ,gridfs,确实走了不少弯路,很大原因可能是:分布式文件应用还不够广,资料老旧,社区分享资料少 , 总之就是资料少。所以我决定以后再实践过程中,尽量多记多分享。

本文参考了好多文章博文,这里就不一一列了,挑几个代表性的:

几大分布式系统的简介:    http://elf8848.iteye.com/blog/1724382

fastDFS官方资料  http://bbs.chinaunix.net/forum.php?mod=forumdisplay&fid=240&page=1 (有问题可以在这个地方找到)


你可能感兴趣的:(nginx,分布式文件系统,fastDFS5.0.5)