Centos 7+FastDFS与Nginx的整合教程

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强。

Tracker 集群
FastDFS集群中的Tracker server可以有多台,Tracker server之间是相互平等关系同时提供服务,Tracker server不存在单点故障。客户端请求Tracker server采用轮询方式,如果请求的tracker无法提供服务则换另一个tracker。

Storage集群
Storage集群采用了分组存储方式。storage集群由一个或多个组构成,集群存储总容量为集群中所有组的存储容量之和。一个组由一台或多台存储服务器组成,组内的Storage server之间是平等关系,不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步,从而保证同组内每个storage上的文件完全一致的。一个组的存储容量为该组内存储服务器容量最小的那个,由此可见组内存储服务器的软硬件配置最好是一致的。
采用分组存储方式的好处是灵活、可控性较强。比如上传文件时,可以由客户端直接指定上传到的组也可以由tracker进行调度选择。一个分组的存储服务器访问压力较大时,可以在该组增加存储服务器来扩充服务能力(纵向扩容)。当系统容量不足时,可以增加组来扩充存储容量(横向扩容)。

具体结构如下图
Centos 7+FastDFS与Nginx的整合教程_第1张图片

了解基础知识后开始搭建fastDFS 服务器
上述可知fastDFS由Tracker服务Storage服务组成
所有我们首先将这两个服务安装好

安装平台
CentOS 7

所需安装包

Centos 7+FastDFS与Nginx的整合教程_第2张图片

fastdfs_client_java._v1.25.tar.gz
nginx-1.10.3.tar.gz
FastDFS_v5.05.tar.gz 
libfastcommonV1.0.7.tar.gz 
fastdfs-nginx-module_v1.16.tar.gz

安装依赖库以及环境

yum install gcc
yum install libevent

安装 libfastcommon
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。

#解压
[root@localhost package]# tar -xvf libfastcommonV1.0.7.tar.gz -C /usr/local/

#进入目录
[root@localhost package]# cd /usr/local/libfastcommon-1.0.7/

#编译
[root@localhost libfastcommon-1.0.7]# ./make.sh

#安装
[root@localhost libfastcommon-1.0.7]# ./make.sh install

#转移文件 libfastcommon.so
[root@localhost lib64]# cp /usr/lib64/libfastcommon.so /usr/lib/

安装tracker服务

#创建FastDFS目录
[root@localhost lib64]# mkdir /usr/local/FastDFS

#解压 FastDFS_v5.05.tar.gz 
[root@localhost lib64]# tar -xvf /home/msi/package/FastDFS_v5.05.tar.gz -C /usr/local/FastDFS/

#进入FastDFS目录
[root@localhost lib64]# cd /usr/local/FastDFS/

#编译
[root@localhost FastDFS]# ./make.sh 

#安装
[root@localhost FastDFS]# ./make.sh install

#将安装目录下的conf文件夹中的所有文件转移到/etc/fdfs
[root@localhost FastDFS]# cp -r /usr/local/FastDFS/conf/ /etc/fdfs

#进入/etc/fdfs 进行配置
[root@localhost FastDFS]# cd /etc/fdfs/

#拷贝配置文件
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf

#修改tracker.conf
#先创建一个文件夹用于存储tracker服务的数据和日志
[root@localhost msi]# mkdir /home/FastDFS
[root@localhost fdfs]# vim tracker.conf

#修改base_path
# the base path to store data and log files
base_path=/home/FastDFS

#启动tracker服务
[root@localhost fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

#查看是否启动成功
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2784/fdfs_trackerd 

安装Storage服务

#安装完tracker服务 安装Storage服务
#进入/etc/fdfs目录
[root@localhost fdfs]# cd /etc/fdfs/

#复制Storage配置文件
[root@localhost fdfs]# cp storage.conf.sample storage.conf

#创建文件夹用于储存数据
[root@localhost fdfs]# mkdir /home/FastDFS/fdfs_storage

#修改storage.conf
[root@localhost fdfs]# vim storage.conf

#修改以下几处
base_path=/home/FastDFS
store_path0=/home/FastDFS/fdfs_storage
tracker_server=yourip:22122

#启动 storage
[root@localhost fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

#查看是否启动成功
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2784/fdfs_trackerd  
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      2793/fdfs_storaged  

至此fastDFS服务器搭建完毕,但是并不可以用http上传所有需要整合Nginx

#解压Nginx
[root@localhost package]# tar -xvf nginx-1.10.3.tar.gz -C /usr/local/

#解压fastdfs-nginx-module_v1.16.tar.gz 整合包
[root@localhost package]# tar -xvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local

#修改fastdfs-nginx-module中的配置文件
[root@localhost package]# cd /usr/local/fastdfs-nginx-module/src

[root@localhost src]# vim config 
#将CORE_INCS,CORE_LIBS,中的/usr/local/路径改为/usr/
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

#转移mod_fastdfs.conf配置文件
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/

#修改/etc/fdfs/mod_fastdfs.conf
[root@localhost fdfs]# vim mod_fastdfs.conf 
base_path=/home/FastDFS
tracker_server=yourid:22122
url_have_group_name = true
store_path0=/home/FastDFS/fdfs_storage

#将libfdfsclient.so拷贝至/usr/lib下
[root@localhost fdfs]# cp /usr/lib64/libfdfsclient.so /usr/lib/

#创建nginx/client目录
[root@localhost fdfs]# mkdir -p /var/temp/nginx/client

#进入Nginx目录
[root@localhost fdfs]# cd /usr/local/nginx-1.10.3
#安装Nginx
[root@localhost nginx-1.10.3]# ./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=/usr/local/fastdfs-nginx-module/src

#编译
[root@localhost nginx-1.10.3]# make

#安装
[root@localhost nginx-1.10.3]# make install

#修改Nginx配置文件
#创建数据目录
[root@localhost nginx]# mkdir /home/FastDFS/fdfs_storage/data
[root@localhost nginx]# cd conf/
[root@localhost conf]# vim nginx.conf
server {
        listen       80;
        server_name  192.168.134.133;
        location /group1/M00/{
                root /home/FastDFS/fdfs_storage/data;
                ngx_fastdfs_module;
                              }
      }

至此Nginx与FastDFS的整合完成
启动Nginx
[root@localhost sbin]# ./nginx
ngx_http_fastdfs_set pid=6203

使用浏览器访问Nginx若成功访问了主页面则成功

你可能感兴趣的:(J2EE)