当前位置: 代码迷 >> 综合 >> centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)
  详细解决方案

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

热度:37   发布时间:2023-10-19 04:41:35.0
转载地址:[https://www.cnblogs.com/aidanzsj/p/5757013.html]

一、简介

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

 1.fastdfs架构如下图示:

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

  • tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
  • storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
  • client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。

、文件上传和下载的交互过程

上传机制:

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

上传流程:

客户端(client)询问Tracker server上传到的Storage server

1.client->Tracker server(返回一台可用的Storage server,返回的数据为该Storage server的IP地址和端口)

2.client直接与1返回的Storage server建立连接->文件上传成功后->Storage server会返回新生成的文件ID->结束

 文件下载流程的步骤如下:

1. client询问Tracker server可以下载指定文件的Storage server,参数为文件ID(包含组名和文件名);

2. Tracker server返回一台可用的Storage server;

3. client直接和该Storage server建立连接,完成文件下载。

系统环境Centor7 64位,本文只安装一个tracker和storage在同一台服务器

准备安装包

首先下载如下的安装包(下载地址,请查看本文最后的下载地址部分):

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

三、安装过程

由于fastdfs5.0.5依赖libevent,所以我们先安装libevent,其中openssl,pcre,zlib是nginx的依赖,由于需要使用apt-get命令安装软件,但此处出现资源不可用的情况或者无效的指令,所以需要手动去安装这些依赖确实会很麻烦,下文会说到,此处是先解释上图的文件,以防有些童鞋误导。

安装步骤如下:

登陆linux系统,切换用户到root用户下

1.安装libevent

 cd /root(对应存放libevent压缩文件的目录)

tar -zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

make clean 
./configure 
 make

 make install 

最后,如果是

32位linux:

ln –s /usr/local/libevent/libevent-2.0.so.5 /usr/lib/

64位linux:

ln -s /usr/local/libevent/libevent-2.0.so.5 /usr/lib64/

2.FastDFS安装

tar -zxvf FastDFS_v4.06.tar.gz

cd  FastDFS_v4.06

./make.sh

./make.sh install 

如果没报错就表示安装成功了,创建了上面的软链接安装基本就没问题了

2.1:安装成功后,/etc/fdfs目录下会有相关配置文件:

client.conf

http.conf

mime.types

storage.conf

tracker.conf

修改配置文件:

配置tracker

gedit tracker.conf

2.2:修改配置文件的这几项(根据数据情况修改):

disabled= false         #启用配置文件
port=22122           #设置tracker的端口号
base_path= /data/fastdfs/trackerd    #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=18080      #设置http端口号
启动trackerd服务
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
如需要的开机自动开启的情况:
# echo '/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local

通过如下命令查看trackerd服务是否启动:

netstat -tupln | grep trackerd 

也可以通过查看日志文件看下有没有出错(/data/fastdfs/tracker/logs是前面配置的路径),如果没有报错,应该trackerd服务启动了。

配置storage.conf

gedit storage.conf

disabled= false             #启用配置文件 
group_name=group1          #组名,根据实际情况修改
port=23000                 #设置storage的端口号
base_path= /data/fastdfs/storage    #设置storage的日志目录(需预先创建) 
store_path_count=1         #存储路径个数,需要和store_path个数匹配 
store_path0= /data/fastdfs/storage   #存储路径
tracker_server=192.168.188:22122  #tracker服务器的IP地址和端口号 
http.server_port=80      #设置http端口号
启动trackerd服务
/usr/local/bin/fdfs_ storage  /etc/fdfs/storage.conf
设置开机启动
# echo '/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local

通过如下命令查看storaged服务是否启动:

netstat -tupln | grep storaged 

也可以通过查看日志文件看下有没有出错(/data/fastdfs/storage/logs是前面配置的路径),如果没有报错,应该storaged服务启动了

配置http.conf中有防盗链的,可以根据需要配置一下,:

http.anti_steal.check_token=true
http.anti_steal.token_ttl=900 http.anti_steal.secret_key=FastDFSSecretKey001 http.anti_steal.token_check_fail=/data/fastdfs/img/anti-steal.jpg

http.anti_steal.check_token:是否开启防盗链,默认为false
http.anti_steal.token_ttl:防盗链token的有效时长
http.anti_steal.secret_key:生成token的密钥
http.anti_steal.token_check_fail:如果是防盗链,需要展示的图片路径

配置client并测试上传

gedit client.conf

修改配置文件的这几项(根据数据情况修改):
base_path=/data/fastdfs/client
tracker_server=192.168.1.188:22122

那么接下来就可以进行一个简单文件上传测试了

cd /usr/local/bin

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

上图上传的是client.conf ,执行成功会返回对应的组+M00+图片的相对路径(也即上述storage配置的路径)。

如果需要用浏览器访问该图片,就需要nginx来做反向代理,直接访问是不行的。

那么接下来就需要安装和配置nginx,文章的开篇说到,openssl,pcre,zlib是nginx的依赖,如果不能使用命令安装自动安装的话,就需要手动的一个个安装

安装nginx依赖(以下使用的版本是个人使用。并没有特别的意思)

1.安装pcre

获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

解压缩pcre-8.31.tar.gz包。

进入解压缩目录,执行./configure。

依次执行make 和 make install命令

2.安装openssl

获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

解压缩openssl-1.0.2h.tar.gz包。

进入解压缩目录,执行./config。

依次执行make 和 make install命令

3.安装zlib

获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

解压缩zlib-1.2.5.tar.gz包。

进入解压缩目录,执行./configure。

依次执行make 和 make install命令

4.那么到现在为止:nginx的依赖模块都已经安装完毕,接着可以进行安装nginx

tar -zxvf nginx-1.10.1.tar.gz  

cd nginx-1.10.1

./configure –prefix=/usr/local/nginx      (–prefix是安装到那个目录下)

make

make install

5.安装完nginx后进行nginx的配置

cd /usr/local/nginx/conf 

gedit nginx.conf 

在server节点加入下面的配置

location /group1/M00{
root /fastdfs/storage/data;
ngx_fastdfs_module;
}

这个时候你监听的端口后默认是80,之前我配置storage文件的时候的http.server_port就有用到80,如需要改其他端口的,可根据情况自行修改

  error_page   500 502 503 504   /50x .html;
     location =  /50x .html {
         root    /usr/share/nginx/html ;
     }

6.启动nginx

/usr/local/nginx/sbin/nginx 

用如下命令查看nginx是否启动了:

netstat -tupln | grep nginx 

成功的话会看到nginx监控的信息

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

 

7.安装和配置nginx插件fastdfs-nginx-module

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz  

cd fastdfs-nginx-module/src/ 
gedit config (这一步很重要,很重要,很重要(重要的事情说三遍)我就是被一些文章弄晕了几天,导致启动nginx模块的时候出现错误,如果上面启动nginx报错的话,先不用着急,接着安装nginx插件,这里配置好重新编译一遍,然后重新启动nginx就ok了)

 CORE_INCS= "$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
  CORE_LIBS= "$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
接着需要将插件添加到nginx
cd /root/nginx-1.10.1/ 
./configure  –add-module=/root/fastdfs-nginx-module/src/ 
make
make install
5.拷贝并修改fastdfs-nginx-module的配置文件
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs 
vim 修改/etc/fdfs/mod_fastdfs.conf 保存退出 

修改如下几项:

tracker_server=192.168.1.188:22122
store_path0=/data/fastdfs/storage
base_path=/data/fastdfs/storage/data
url_have_group_name = true(配置多个tracker时,应该将此项设置为true)

建立软连接(配置文件中storage存放数据的路径)

ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

将FastDFS_v4.06配置目录下的2个文件复制到/etc/fdfs目录下:

cp /usr/local/fastdfs-5.05/conf/http.conf . 
cp /usr/local/fastdfs-5.05/conf/mime.types .

最后我再进行一次上传文件测试:

cd /usr/local/bin

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

上传了一张测试图片

然后再浏览器上面输入自己的ip+端口号+文件路径(ip换成绑定的对应域名也行)

看下成果:

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置(转)

这样基本就ok了

  相关解决方案