版权声明:本文为GitChat作者的原创文章,未经 GitChat 同意不得转载。 https://blog.csdn.net/GitChat/article/details/79479148

wx_fmt=gif&wxfrom=5&wx_lazy=1" style="visibility:visible !important;" alt="640?wx_fmt=gif&wxfrom=5&wx_lazy=1" />

本文来自作者 only you 在 GitChat 上分享 「FastDFS + Nginx(单点部署)应用实例」

编辑 | 哈比

现在流行框架设计简述

在互联网大行其道的今天。各种分布式系统已经司空见惯。

搜索引擎、电商站点、微博、微信、O2O 平台,凡是涉及到大规模用户、高并发訪问的,无一不是分布式。

关于分布式系统,并没有一个标准答案,说某某架构一定是最好的。

不同的业务形态所面对的挑战不一样,使用的架构设计也不一样,通常都须要详细业务详细分析。

水平扩展和垂直拆分是分布式架构的两种思路,但并非一个二选一的问题,很多其它的是兼并合用。以下介绍一个实际的场景。这也是很多互联网的公司架构思路。

文件server的诞生和应用背景

现现在非常多的系统中,须要存储过多的图片、视频等资料,文件存储、文件同步、文件訪问(文件上传、文件下载)等这些问题就出来了。

怎么攻克了大容量存储和负载均衡的问题?对以文件为载体的在线服务,如相冊站点、视频站点等,文件server就起到了支撑的作用。

FastDFS 文件server的诞生背景和应用意义

FastDFS 是一个开源的轻量级分布式文件系统。

在一个分享的磁盘文件系统中,全部节点对数据存储区块都有同样的訪问权,在这种系统中。訪问权限就必须由客户端程序来控制。

分布式文件系统可能包括的功能有透通的数据复制与容错。

分布式文件系统是被设计用在局域网。而分布式数据存储,则是泛指为应用分布式运算技术的文件和数据库等提供数据存储服务的系统。

接下来。我们就搭建 FastDFS 文件server,体验它的强大之处。

FastDFS 文件server搭建

搭建好开发环境介绍

本人測试环境为 Centos7 系统,一台 192.168.229.128 作为 tracker,一台 192.168.229.129 作为 storage。

安装步骤

安装依赖环境

安装命令例如以下。


yum install make cmake gcc gcc-c++

安装公共安装包 libfastcommon

网上下载该包放到安装文件夹下,我的安装文件夹是 /usr/local/software,大家依据自己的习惯自定义。

解压该安装包到 /usr/local/fast 文件夹下。

解压命令例如以下。


unzip  libfastcommon-mastar.zip –d  /usr/local/fast

进入解压文件夹下,例如以下图所看到的。

进行编译和安装

编译命令例如以下。


./make.sh

安装命令例如以下。


./make.sh install

运行过程。例如以下图所看到的。

进行软件创建

FastDFS 主程序设置的文件夹为 /usr/local/lib/,所以我们须要创建 /usr/lib64/ 下的一些核心运行程序的软连接文件。

创建我们自己的 lib 文件夹,命令例如以下。


mkdir /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

运行界面例如以下图所看到的。

https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaOKBMEolH5b8g5Rv8iagibJlibyS2CduJt456AkfIXJnsOZQluW01oicUXspBzawYKa8teP99pd5J2Ofw/640?wx_fmt=png" alt="640?wx_fmt=png" />

安装 FastDFS 主程序

首先须要自己到网上下载 FastDFS 安装包。

在这里,我用的是 5.05 版本号的。

把我们从网上下载下来的 FastDFS_v5.05.tar.gz 进行解压到 /usr/local/fast/ 下。使用到的命令例如以下。


cd /usr/local/software
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/

进入解压文件夹进行编译安装

进入解压文件夹,命令例如以下。


cd /usr/local/fast/FastDFS/

编译命令例如以下。


./make.sh

安装命令例如以下


./make.sh install

运行界面例如以下图所看到的。

https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaOKBMEolH5b8g5Rv8iagibJlibjWDCfzyF0H3J8nicvpTUvVSbA8biadHfOqXIG9UFvnq8R3R8ibXEEB9VA/640?wx_fmt=png" alt="640?wx_fmt=png" />

中间没有不论什么的 error 字样,说明成功安装。

相关脚本说明

安装完毕后。服务脚本在以下文件夹中。

/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

以下这张图显示了服务脚本的文件夹和文件列表。

wx_fmt=png" alt="640?wx_fmt=png" />

下图显示了在配置文件文件夹下备份的默认配置文件。

由于 FastDFS 服务脚本设置的 bin 文件夹为 /usr/local/bin/,可是实际我们安装在了 /usr/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// 进行全局替换命令

配置跟踪器

首先我们进入 /etc/fdfs/ 文件夹下。把 tracker.conf.sample 文件 Cope 一份。

去改动 tracker.conf 文件。改文件作为 tracker 启动配置文件。

命令例如以下。


vim /etc/fdfs/tracker.conf

改动 tracker 的 basepath 文件夹之后。别忘了创建改文件夹。命令例如以下。


mkdir -p /fastdfs/tracker

到这里,我们的跟踪器就能够启动了。见下图。

当然在这个之前要关闭防火墙操作。

wx_fmt=png" alt="640?

wx_fmt=png" />

有二个确定的字样,说明了启动成功。

扫描下方二维码

阅读完整原文

并与作者交流

https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaM7ktDqefFrwHic9GiccCzzo25iaCeC0LOkmv7dsnsFMllJWvSEMDZavutDG27HCsAmsgiadHDJvRrmDA/640?wx_fmt=png" alt="640?wx_fmt=png" />

简单的 FastDFS + Nginx 应用实例的更多相关文章

  1. linux上安装fastdfs+nginx+ngin-module实践并解决多个异常篇

    为什么选择Nginx Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主 ...

  2. fastdfs+nginx+image_filter安装与生成缩略图

    fastdfs简介 类似google FS的一个轻量级分布式文件系统,纯C实现,支持linux.FreeBSD等UNIX系统: 只能通过API访问,不支持POXIS: 文件不分块存储,上传的文件和OS ...

  3. 二、Nginx配置实例

    Nginx配置实例 一.反向代理 实例一 1.实现效果 打开浏览器,在浏览器地址栏输入地址 www.123.com ,跳转到linux系统tomcat主页面中. 2.准备工作 在linux系统中安装t ...

  4. Nginx 笔记(三)nginx 配置实例 - 反向代理、负载均衡、动静分离

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.反向代理 反向代理准备工作: (1)在 liunx 系统安装 tomcat,使用默认端口 8080 ...

  5. 在虚拟机中配置FastDFS+Nginx模块

    先上部署图 提示一下, ip 192.168.72.138 上面部署了两个group, 分别为 group1和g2. 另外, 同组之内的 port 要保持一致. 一.安装准备 1. #每台机器都添加两 ...

  6. Fiddler-009-AutoResponder 简单的 MOCK SERVER 应用实例

    在我们日常的测试中经常需要测试特定的响应对应的客户端展示样式是否正确无误,实现测试方法一般有如下三种: 创建新的测试数据(工作量较大) 修改已有测试数据(例如修改对应的状态码,若是最终需要测试的按钮状 ...

  7. FastDFS + Nginx代理方式访问

    FastDFS + Nginx代理方式访问 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.在storage上安装nginx 1>.下载nginx软件(http://ngi ...

  8. FastDFS+Nginx+fastdfs-nginx-module集群搭建

    一.实验环境说明 操作系统: Centos 6.6 x64 FastDFS 相关版本: fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1 ...

  9. 使用Python编写简单的端口扫描器的实例分享【转】

    转自 使用Python编写简单的端口扫描器的实例分享_python_脚本之家 http://www.jb51.net/article/76630.htm -*- coding:utf8 -*- #!/ ...

随机推荐

  1. C语言实现密码修改

    /* *修改密码 *描述: *1.本来已经存在密码 *2.很多时候需要输入两次密码,对比是否正确,才能确认修改密码正确 *敲代码思路: *1.输入旧的密码判断是否正确 *2.提示输入修改后的密码 *3 ...

  2. 数模转换ADC08009应用

    #include <reg52.h> //头文件 #define uchar unsigned char //宏定义无符号字符型 #define uint unsigned int //宏 ...

  3. (转)为什么wait(),notify()和notifyAll()必须在同步块或同步方法中调用

    我们常用wait(),notify()和notifyAll()方法来进行线程间通信.线程检查一个条件后就行进入等待状态,例如,在“生产者-消费者”模型中,生产者线程发现缓冲区满了就等待,消费者线程通过 ...

  4. java第二周的学习知识4(对原码,补码,反码和java中浮点数计算不准确的总结)

    原码:一个正数,转换为二进制位就是这个正数的原码.负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码. 但是原码有几个缺点,零分两种 +0 和 -0 .很奇怪是吧!还有,在进行不同符号的加法运 ...

  5. Mac下R语言环境搭建

    Mac下R语言环境搭建 博主在数据分析的时候一直用的python(MATLAB太重了),最近跟其他搞学术的人合作,需要用一下R语言,所以也打算顺便学习一下R. R语言简介 R语言是用于统计分析,图形表 ...

  6. consul 文档

    consul 服务发现 服务发现,用docker的时候可以使用,并且可以实现负载均衡. 因业务需要,所以留一下自己搜到比较好的资料吧 英文:https://www.consul.io/intro/ge ...

  7. vim设置一个tab为4个空格,设置行号

    这我就再当前用户下,不是root权限.本身是没有.vimrc这个文件的 vim  ~/.vimrc 新建了这个文件 然后在其中输入 保存. 这样设置完就一个tab是4个空格,并且就有行号了.重新打开v ...

  8. RAID各种级别详细介绍

    独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive ...

  9. TDG今日成立!

    大家好我们是来自土1603-3的佟天宇.杨子浩.吴强.周泊辰(从左到右) 我们的团队名称是  TDG队 我们的口号是:“Legends Never Die!” 队员简介: 佟天宇 个性:儒雅随和 特长 ...

  10. 更好用的excel国际化多语言导出

    不知道大家在开发中有没有遇到过『excel导出』的需求,反正我最近写了不少这种功能,刚开始利用poi,一行行的手动塞数据,生成excel,而且还有国际化需求,比如:标题栏有一列,用户切换成" ...