阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

156次阅读
没有评论

共计 6712 个字符,预计需要花费 17 分钟才能阅读完成。

上次搭建 FastDFS 使用的版本是 v4.05,见 http://www.linuxidc.com/Linux/2014-10/107592.htm
这个版本已经比较旧了

最新的版本是 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

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

与之前版本不同的是,v5.04 首先需要安装 libfastcommon
下载地址:https://github.com/happyfish100/libfastcommon.git

 1. 安装 libfastcommon
在每一台服务器上, 解压 libfastcommon, 进入 libfastcommon-master 目录执行
./make.sh
 ./make.sh install

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

可以看到 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”

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

————————————– 分割线 ————————————–

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

————————————– 分割线 ————————————–

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107659p2.htm

4. 安装 nginx
在每个 Storage 服务器上安装 Nginx  http://www.linuxidc.com/Linux/2014-10/107593.htm

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

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

修改 Nginx 配置文件
        location /M00 {
            root /storage;
            ngx_fastdfs_module;
        }
在 /storage 目录下创建软连接, 将其链接到实际存放数据的目录,
 [root@mysql2 storage]# pwd
 /storage
 [root@mysql2 storage]# ln -s data/ M00

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

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

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

注意事项:
1.FastDFS 各个版本安装方式有差别, 需要阅读 INSTALL 文件
2.FastDFS 各个组件的默认位置可能不同, 需要按照版本创建相应的软链接

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

上次搭建 FastDFS 使用的版本是 v4.05,见 http://www.linuxidc.com/Linux/2014-10/107592.htm
这个版本已经比较旧了

最新的版本是 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

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

与之前版本不同的是,v5.04 首先需要安装 libfastcommon
下载地址:https://github.com/happyfish100/libfastcommon.git

 1. 安装 libfastcommon
在每一台服务器上, 解压 libfastcommon, 进入 libfastcommon-master 目录执行
./make.sh
 ./make.sh install

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

可以看到 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”

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

————————————– 分割线 ————————————–

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

————————————– 分割线 ————————————–

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107659p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6712字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中