设为首页 收藏本站
查看: 1187|回复: 0

[经验分享] centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

[复制链接]

尚未签到

发表于 2017-6-1 12:59:27 | 显示全部楼层 |阅读模式
  前言:
  以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导。不了解fastdfs的童鞋可以先去了解下,请看http://tech.uc.cn/?p=221
  一、简介
  FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等
  1.fastdfs架构如下图示:
DSC0000.png

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


  • tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
  • storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
  • client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
  二、文件上传和下载的交互过程
  上传机制:
   DSC0001.png DSC0002.png
  上传流程:
  客户端(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在同一台服务器
  准备安装包
  首先下载如下的安装包(下载地址,请查看本文最后的下载地址部分):
DSC0003.png

  三、安装过程
  由于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
DSC0004.png

  上图上传的是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监控的信息
DSC0005.png

  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
DSC0006.png

  上传了一张测试图片
  然后再浏览器上面输入自己的ip+端口号+文件路径(ip换成绑定的对应域名也行)
  看下成果:
DSC0007.png

  这样基本就ok了
  欢迎看完来喷,更欢迎有建设性的意见。大家一起探讨学习

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-382150-1-1.html 上篇帖子: FastDFS 的安装与配置 下篇帖子: centos fastdfs 多服务器 多硬盘 多组 配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表