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

[经验分享] FastDFS 和nginx整合

[复制链接]

尚未签到

发表于 2017-12-22 10:34:31 | 显示全部楼层 |阅读模式
  失败的经历:
  从昨晚到今晚,一直在配置这FastDFS 和nginx整合这两个东西。听了黑马的讲师说一个人第一次做这个,光是搭建一个最简单的分布式文件系统至少需要1天时间。其实看来,果然没错。不过大部分时间都花在了执行错误的方法上面。
  可能有人是看过了传智播客的讲师错误配置方法之后才来网上寻找答案的,没错。拜托那个错误的配置文档之后,重新开启一台虚拟机,铛!!!!!花了4个小时左右,配置成功了。
  下面是效果图:
DSC0000.png

  总有一个体会,每次对一件事物感到深刻是对它想吐之后才会有。这次是真的恶心到我了。配置特别复杂!
  好了,废话不多说了,我是看到了一篇网页的文章才一步步做出来的。他写的已经很不错了,我给个他的链接吧:
  https://my.oschina.net/u/1867229/blog/829572
  然后,我也复制大牛的文章过来了分享。
  FastDFS安装手册
  FastDFS之集群部署:  http://blog.csdn.net/zhu_tianwei/article/details/46045641
  一、准备工作
  1下载软件:http://sourceforge.net/projects/fastdfs/files/
  2安装gcc。命令:yum install make cmake gcc gcc-c++
  二、安装libfastcommon
  1.下载 软件: https://github.com/happyfish100/libfastcommon
  2.上传libfastcommon-master.zip 到 /home/lee 目录下
  3. 进行解压libfastcommon-master.zip:
  命令:unzip libfastcommon-master.zip -d /usr/local/fast/
  4. 进入目录:cd /usr/local/fast/libfastcommon-master/

  5. 进行编译和安装:
  命令:./make.sh
  命令:./make.sh install

  注意安装的路径:也就是说,我们的libfastcommon默认安装到了/usr/lib64/这个
  位置。
  6.进行软链接创建。
  FastDFS主程序设置的目录为/usr/local/lib/,而我们的安装目录为/usr/lib64,所以我们需要创建/
  usr/lib64/下的一些核心执行程序的软连接文件。
  创建目录
  命令:mk dir /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
  三、安装FastDFS
  1 进入到 cd /home/lee下,解压FastDFS_v5.05.tar.gz文件
  命令:cd /home/lee
  命令:tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
  2 安装编译
  命令:cd /usr/local/fast/FastDFS/
  编译命令:./make.sh
  安装命令:./make.sh install

  3 采用默认安装方式脚本文件说明:
  服务脚本在:
  /etc/init.d/fdfs_storaged
  /etc/init.d/fdfs_trackerd

  配置文件在:
  /etc/fdfs/client.conf.sample
  /etc/fdfs/storage.conf.sample
  /etc/fdfs/tracker.conf.sample

  命令行工具在/usr/bin/目录下,Fdfs_*的一些列执行脚本

  4.因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/u
  sr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改俩
  个配置文件:
  命令:vim /etc/init.d/fdfs_storaged
  进行全局替换命令:%s+/usr/local/bin+/usr/bin
  命令:vim /etc/init.d/fdfs_trackerd
  进行全局替换命令:%s+/usr/local/bin+/usr/bin
  四.配置跟踪器
  1 进入 cd/etc/fdfs/ 目录配置跟踪器文件,把tracker.conf.sample文件
  进行cope一份:去修改tracker.conf文件

  2 修改tracker.conf文件
  命令:vim /etc/fdfs/tracker.conf
  如下图所示:我们暂时修改配置文件里的base_path即可。

  修改为自己的路径地址:base_path=/fastdfs/tracker
  注意:对于tracker.conf配置文件参数解释可以找官方文档,地址为:
  http://bbs.chinaunix.net/thread-1941456-1-1.html
  3 最后我们一定要创建之前定义好的目录(也就是/fastdfs/tracker):
  命令:mkdir -p /fastdfs/tracker
  4 关闭防火墙:
  Vim /etc/sysconfig/iptables
  添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
  重启:service iptables restart
  五 启动跟踪器
  如图所示:

  目录命令:cd /fastdfs/tracker/ && ll
  启动tracker命令:/etc/init.d/fdfs_trackerd start
  查看进程命令:ps -el | grep fdfs
  停止tracker命令:/etc/init.d/fdfs_trackerd stop
  6可以设置开机启动跟踪器:(一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat)
  命令:vim /etc/rc.d/rc.local
  加入配置:/etc/init.d/fdfs_trackerd start
  六、配置FastDFS存储
  1 进入文件目录:cd /etc/fdfs/,进行copy storage文件一份
  命令:cd /etc/fdfs/
  命令:cp storage.conf.sample storage.conf
  2 修改storage.conf文件
  命令:vim /etc/fdfs/storage.conf
  修改内容:
  base_path=/fastdfs/storage
  store_path0=/fastdfs/storage
  tracker_server=192.168.1.172:22122   (请注意!!真实环境中,此处填写外网ip,防止客户端读取ip段错误)
  http.server_port=8888
  3 创建存储目录:mkdir -p /fastdfs/storage
  4 打开防火墙:
  命令:vim /etc/sysconfig/iptables
  添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
  重启:service iptables restart
  5 启动存储(storage)
  命令:/etc/init.d/fdfs_storaged start (关闭命令:/etc/init.d/fdfs_storaged stop)
  (初次启动成功后会在/fastdbf/storage/ 目录下创建 data、logs俩个目录)

  6 查看FastDFS storage 是否启动成功
  命令:ps -ef | grep fdfs

  并且我们进入到/fastdfs/storage/data/文件夹下会看到一些目录文件(256*256)
  如下:
  命令:cd /fastdfs/storage/data/ && ls

  7同理,也可以设置开机启动存储器:(一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat)
  命令:vim /etc/rc.d/rc.local
  加入配置:/etc/init.d/fdfs_storaged start
  到此为止我们的FastDFS环境已经搭建完成!
  七.测试环境
  1 我们先使用命令上传一个文件。注意:是在tracker(跟踪器)中上传。
  首先我们在跟踪器里copy一份client.conf文件。
  命令:cd /etc/fdfs/
  命令:cp client.conf.sample client.conf

  2 编辑client.conf文件
  命令:vim /etc/fdfs/client.conf
  修改内容:
  base_path=/fastdfs/tracker
  tracker_server=192.168.1.172:22122
  3 我们找到命令的脚本位置,并且使用命令,进行文件的上传:
  命令:cd /usr/bin/
  命令:ls | grep fdfs

  4 使用命令fdfs_upload_file进行上传操作:
  首先,我们先看一下存储器,进入到data下,在进入00文件夹
  下,发现00文件夹下还有一堆文件夹,然后继续进入00文件夹下,最终我们所
  进入的文件夹为:
  /fastdfs/storage/data/00/00 里面什么文件都没有。

  然后,我们进行上传操作,比如把之前的/usr/local/software/文件夹下的某一个
  文件上传到FastDFS系统中去,在跟踪器中上传文件,命令如
  下:
  命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf
  /home/lee/FastDFS_v5.05.tar.gz

  最后我们发现,命令执行完毕后,返回一个group1/M00/00/00/...的ID,其实就
  是返回当前所上传的文件在存储器中的哪一个组、哪一个目录位置,所以我们查看存储器中的/fastdfs/storage/data/00/00文件夹位置,发现已经存在了刚才上传的文件,到此为止,我们的测试上传文件已经OK了。
  如下:

  八.fastdfs 与nginx整合
  1 首先必须先安装nginx (下载地址: http://mirrors.sohu.com/nginx/)
  2 然后我们在存储节点上安装fastdfs-nginxmodule_v1.16.tar.gz包进行整合。

  目录命令:cd /home/lee
  解压命令:tar -zxvf /home/lee/fastdfs-nginx-module_v1.16.tar.gz -C
  /usr/local/fast/

  3 进入目录:cd fastdfs-nginx-module/src/

  4 编辑配置文件config
  命令: vim /usr/local/fast/fastdfs-nginx-module/src/config
  修改内容:去掉下图中的local文件层次

  修改完毕为:

  5 FastDFS与nginx进行集成
  首先把之前的nginx进行删除
  目录命令:cd /usr/local/
  删除命令:rm -rf nginx
  进入到nginx目录命令:cd nginx-1.6.2/
  由于需要安装nginx,需要安装依赖:yum -y install  zlib pcre pcre-devel zlib-devel
  加入模块命令:./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
  重新编译命令:make && make install
  6 复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中,如图所示:

  copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
  7 进行修改 /etc/fdfs/ 目录下,我们刚刚copy过来的mod_fastdfs.conf 文件。

  命令:vim /etc/fdfs/mod_fastdfs.conf
  修改内容:比如连接超时时间、跟踪器路径配置、url的group配置、
  connect_timeout=10
  tracker_server=192.168.1.172:22122
  url_have_group_name = true
  store_path0=/fastdfs/storage
  8 复制FastDFS里的2个文件,到/etc/fdfs目录中,如图所示:

  目录命令:cd /usr/local/fast/FastDFS/conf/
  Copy命令:cp http.conf mime.types /etc/fdfs/
  9创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据
  的目录。
  命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
  10 修改Nginx配置文件,如图所示:

  命令:vim nginx.conf
  添加端口映射配置内容如下图所示:

  修改内容为:
  listen 8888;
  server_name localhost;
  location ~/group([0-9])/M00 {
  root /fastdfs/storage/data;
  ngx_fastdfs_module;
  }
  注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致,
  也就是(http.server_port=8888)
  11 最后检查防火墙,然后我们启动nginx服务
  启动命令:/usr/local/nginx/sbin/nginx,

  上传一个文件,上传成功,
  如图:

  现在我们使用这个ID用浏览器访问地址:
  http://192.168.1.173:8888/group1/M00/00/00/wKgBrVaSvM6AddWWAAVFOL7FJU4.tar.gz
  我们就可以下载这个文件啦!如下图所示:

  运维注意:我们在使用FastDFS的时候,需要正常关机,不要使用kill -9
  强杀FastDFS进程,不然会在文件上传时出现丢数据的情况。
  到此,我们的FastDFS与Nginx整合完毕!!
  九:启动停止服务步骤如下:
  启动命令:
  启动tracker命令:/etc/init.d/fdfs_trackerd start
  查看进程命令:ps -el | grep fdfs
  启动storage命令:/etc/init.d/fdfs_storaged start
  查看进程命令:ps -el | grep fdfs
  启动nginx命令:/usr/local/nginx/sbin/nginx
  停止命令:
  停止tracker命令:/etc/init.d/fdfs_trackerd stop
  关闭storage命令:/etc/init.d/fdfs_storaged stop
  关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop
  删除上传文件:
  /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wK
  gBe1iEcGOAafHdALSFS-ifSIk.tar.gz

运维网声明 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-426771-1-1.html 上篇帖子: docker 中安装 FastDFS 总结 下篇帖子: FastDFS + nginx 整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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