分布式文件系统 法斯特DFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第②篇

分布式文件系统 法斯特DFS 5.0.5 & Linux CentOS 7 安装配备(单点安装)——第壹篇 

  • ### 简介

率先不难驾驭一下基础概念,法斯特DFS是两个开源的轻量级分布式文件系统,由跟踪服务器(tracker
server)、存款和储蓄服务器(storage
server)和客户端(client)五个部分构成,首要消除了海量数据存款和储蓄难题,特别适合以中等文件(建议范围:4KB
< file_size <500MB)为载体的在线服务。法斯特DFS的系统结构图如下:

图片 1

如上图,法斯特DFS的三个主旨概念分别是:

  1. Tracker(跟踪器)
  2. Storage(存储节点)

Tracker紧要做调度工作,相当于mvc中的controller的剧中人物,在走访上起负载均衡的职能。跟踪器和存款和储蓄节点都能够由一台或多台服务器构成,跟踪器和储存节点中的服务器均能够每一日扩展或下线而不会影响线上劳动,当中跟踪器中的全部服务器都以对等的,能够根据服务器的下压力景况随时扩展或回落。Tracker负责管理全数的Storage和group,各样storage在开发银行后会连接Tracker,告知本身所属的group等消息,并保证周期性的心跳,tracker依照storage的心跳新闻,建立group==>[storage
server
list]的映射表,Tracker供给管理的元新闻很少,会全部囤积在内部存款和储蓄器中;其余tracker上的元音信都是由storage汇报的音信变更的,自身不要求持久化任何数据,这样使得tracker非凡简单扩充,间接增添tracker机器即可扩充为tracker
cluster来服务,cluster里每一种tracker之间是一点一滴对等的,全体的tracker都承受stroage的心跳音讯,生成元数据新闻来提供读写服务。

Storage接纳了分卷[Volume](或分组[group])的团体措施,存款和储蓄系统由多少个或四个组构成,组与组之间的公文是互为独立的,全数组的文件体积增进正是全部存款和储蓄系统中的文件体积。二个卷[Volume](组[group])可以由一台或多台仓库储存服务器组成,3个组中的积存服务器中的文件都以一模一样的,组中的多台存款和储蓄服务器起到了冗余备份和负载均衡的功能,数据交互备份,存款和储蓄空间以group内容积最小的storage为准,所以提出group内的五个storage尽量配置相同,避防导致存款和储蓄空间的荒废。更加多原理性的始末能够参见那篇blog,介绍的很详细:分布式文件系统法斯特DFS设计原理
接下去就具体看一下法斯特DFS的整套下载安装进程~

 

目录

style=”font-family: 宋体; font-size: 14pt;”>前言

style=”font-family: 行草;”>第9 style=”font-family: 石籀文;”>章
用户认证

style=”font-family: 行书;”>第玖 style=”font-family: 燕书;”>章
用户剧中人物

style=”font-family: 陶文;”>第玖 style=”font-family: 陶文;”>章
用户资料

style=”font-family: 陶文;”>第②1 style=”font-family: 小篆;”>章
博客作品

style=”font-family: 宋体;”>第12 style=”font-family: 宋体;”>章
关注者

style=”font-family: 黑体;”>第二3 style=”font-family: 黑体;”>章
用户评价

style=”font-family: 黑体;”>第①4 style=”font-family: 金鼎文;”>章
应用编制程序接口

 

 

下载

现阶段笔者最终三回releases的时光的14年6月22号,对应的摩登版本是5.0.5,直接在余大的GitHub上下载就能够了:
https://github.com/happyfish100/fastdfs/releases

 

 

安装


libfastcommon

率先第3步是安装libfastcommon,笔者那里将libfastcommon上传到的/usr/local目录下,直接解压:

unzip libfastcommon-master.zip

解压成功后跻身目录看一下压缩包的文本:
图片 2

假如没有装解压工具unzip能够通过以下yum命令进行设置后再解压:

yum -y install unzip zip

解压实现后就足以拓展编写翻译安装了,分别施行./make.sh./make.sh install,由于是新安装的系统有大概会提醒找不到gcc命令:
图片 3

如上航海用图书馆,所以大家先要安装gcc编译器:

yum -y install gcc-c++

总的来看如下消息验证gcc已经安装成功:
图片 4

这时候重新实施./make.sh指令进行编译,没有error音信的话就注解编写翻译成功了,最终再履行./make.sh install展开安装,看到类似如下提醒新闻就认证libfastcommon已设置成功(画风突变,黑底白字看的眼睛累T_T,所以换到白底黑字了):
图片 5

至此libfastcommon就已经设置成功了,但注意一下上航海用体育场地中浅灰框标注的始末,libfastcommon.so
私下认可安装到了/usr/lib64/libfastcommon.so,但是法斯特DFS主程序设置的lib目录是/usr/local/lib,所以这里供给重新设置软链接(类似于Windows的快捷情势):

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了。

前言

第二章-第⑩章学习实践记录请参见:《Flask
Web开发——基于Python的Web应用开发实践》一字一板上机实践(上)

 

本文记录自个儿攻读《Flask
Web开发——基于Python的Web应用开发执行》的第⑩章-第②4章内容。相比较于刚(Yu-Gang)初阶读书第3-7章内容来说,本有的内容实战性更强,而且在书本上遭逢的题材也针锋相对较少,若是认真弄懂前7章内容的话,本有的内容也正是是对前7章内容的切实执行,学习也很轻松。

 

率先说澳优下本有的项目示范完结了怎么效能?

  • 用户角色:普通用户、管理员
  • 切实职能:登六 、注册、宣布小说、编辑成文、用户间关注、用户评价、修改个人消息、管理用户评价、马克Down展现小说格式。

下图中所示为二个组织者剧中人物登陆系统各部分机能图片动态图:

 图片 6

本身要好上机演练代码:(PS:和作者GitHub上代码有微微分别)

 

 


FastDFS

先是步依旧是解压:

tar -zxvf fastdfs-5.05.tar.gz 

解压完毕后跻身目录fastdfs-5.05,依次执行./make.sh和./make.sh install:

./make.sh
./make.sh install

一直不报错就认证安装成功了,在log中大家得以窥见安装路径:
图片 7

没错,就是安装到了/etc/fdfs中,大家看一下该目录下的文本:
图片 8

如上海体育场合,安装成功后就会生成如上的三个.sample文件(示例配置文件),我们再各自拷贝出贰个前面用的正规化的计划文件:

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

从此再查看一下/etc/fdfs的文件目录:
图片 9

至此FastDFS已经设置收尾,接下去的做事正是逐一配置Tracker和Storage了。

第七章 用户认证

1.书本79页密码散列功能shell测试有bug

万一学完第十章,并依据71页manage.py中写入运行脚本代码,在决定台输入python
manage.py shell会报以下错误:TypeError: <flask_script.commands.Shell
object at 0x0000000004E29668>: ‘dict’ object is not callable

图片 10

 

解决办法如下图:

 图片 11

 

继之,如果依然安装书本上命令提示输入指令,会报以下错误:Traceback
(most recent call last):File “<console>”, line 1, in
<module>

化解办法见下图:

 图片 12

 

2.书本87页用shell插入新用户数量有bug

本难题在于数据库设计带有外键,直接根据书中插入代码,未插入用户剧中人物外键,是无能为力插入数据的。

化解办法:删除User表和Role表之间的多对一事关

 图片 13

 

然后,删除项目中有所**.sqlite文件和migrations文件夹,具体如下:

 图片 14

 

接下来依据下图所示三步,重新创建数据库(PS:此处方法见第④章5.11节):

 图片 15

 

这一个处理完结后,依据书上插入代码,依然会报找不到User和db错误,化解办法如下:

 图片 16

 

完毕上述数据插入任务后,在CMD控制台输入python
manage.py
runserver开启服务,浏览器中输入http://127.0.0.1:5000/auth/login,然后用插入的邮箱号和密码进行登陆,会得到如下结果:

 图片 17

 

 图片 18

 

 

3.书本89页实际运作结果(PS:经验证,数据能够挂号成功)

 

 图片 19

图片 20

 

4.书本92页执行3个新的数据库迁移

在CMD窗口中,依次输入python
manage.py db migrate -m “the second migration”、python manage.py db
upgrade命令,具体实践以及取得结果如下:

 图片 21

图片 22

 

5.书本94页示例8-22代码因为Flask-Login版本难点应运而生如下图所示bug

 图片 23

 

消除办法见下图:

 图片 24

 

让自家疑心的是,笔者写笔记时看的是实体书,下面代码有难点,上面截图的是电子书,下面却是正确的>~<,具体如下:

 图片 25

 

标题一下子就解决了方案网址(https://segmentfault.com/q/1010000004041497

测试is_authenticated方法如下:

 图片 26

 

外加书本95页页面运营结果:

 图片 27

图片 28

 

 

出现上海图书馆的来由:

花了三个多钟头找错,结果发现是和谐照着书籍83页敲示例8-8代码时少了return语句,直接写User.query.get(int(user_id)),具体如下:

 图片 29

 

化解来源(https://github.com/maxcountryman/flask-login/issues/302):

 图片 30

 

运维成功界面如下:

 图片 31

 

下边是本身要好修改数据库数据中国集中国人民邮政总局公司箱验证属性为True时展现结果(PS:首要在于邮箱验证时要求报名暂时密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中数量):

 图片 32

 

注:第八章重点教学了怎么采纳Flask框架完毕用户登陆 、注册效率,以及选取邮箱进行用户注册确认以及密码修改确认等。感觉第⑧章内容正是对书籍前7章内容的三回综合作演出习,全部应用的技术点都得以在前7章中找到。所以,个人感觉只要踏踏实实把第9章全部代码以及落到实处思路弄懂,才总算刚刚入门Flask框架。

 

 


Tracker

在配置Tracker以前,首先必要创设Tracker服务器的文件路径,即用于存款和储蓄Tracker的数据文件和日志文件等,作者那边选取在/opt目录下开创二个fastdfs_tracker目录用于存放Tracker服务器的连锁文件:

mkdir /opt/fastdfs_tracker

接下去就要重复编写上一步准备好的/etc/fdfs目录下的tracker.conf配置文件,打开文件后相继做以下修改:

  1. disabled=false #启用配置文件(暗中认可启用)
  2. port=22122 #设置tracker的端口号,平日采纳22122那么些暗中同意端口
  3. base_path=/opt/fastdfs_tracker
    #安装tracker的数据文件和日志目录
  4. http.server_port=6666 #设置http端口号,默认为8080

配置实现后就足以运营Tracker服务器了,但首先照旧要为运转脚本创立软引用,因为fdfs_trackerd等一声令下在/usr/local/bin中并从未,而是在/usr/bin路径下:

ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

终极经过命令运行Tracker服务器:

service fdfs_trackerd start

指令执行后方可旁观以下提醒:
图片 33

要是开行命令执行成功,那么与此同时在刚刚成立的tracker文件目录/opt/fastdfs_tracker中就足以阅览运维后新变化的data和logs目录,tracker服务的端口也应该被平常监听,最终再经过netstat命令查看一下端口监听意况:

netstat -unltp|grep fdfs

能够见见tracker服务运作的22122端口符合规律被监听:
图片 34

认同tracker平常运转后能够将tracker设置为开机运转,打开/etc/rc.d/rc.local并在里面参预以下配置:

service fdfs_trackerd start

Tracker至此就计划好了,接下去就足以安顿FastDFS的另一着力——Storage。

第拾章 用户剧中人物

1.书本99页使用shell会话把剧中人物写入数据库难题

鉴于在第9章完结进度中,作者把Role表和User表之间的外键关系给删除了,假若在那章不另行上涨两表之间的涉及就不能兑现用户剧中人物的意义。所以,在那种场地下,小编又得要把数据库重新开头化、迁移和创立。之所以这么做,而不是直接进行搬迁和开创,是因为自身在从来开始展览搬迁和创设的进程中,报错:default属性在框架中曾经存在,不大概制造新的Role表,这一个破绽百出没有消除,由于初学,无奈,间接删除migrations文件夹和转变的data-dev.sqlite数据库文件,重新展开起始化、迁移和创办,发现一切OK。具体如下:

 图片 35

 

好了,既然Role表和User表之间有了一对多而存在的外键关系,那注册功用插入用户数据时,必须得要承认用户角色,不然无法插入。

 图片 36

 

恰恰展开了挂号测试,竟然毫无鲜明用户剧中人物,也能够插入成功。那样的觉得违背了自家就学数据库的理论知识啊,此前第陆章,实行扦插数据时,行不通,今后好了。推测是事先学习时,代码有点bug。

 

注:本章相当于重点在讲数据库的学问,和本书宗旨Flask框架的知识点联系非常的小,在那之中宗旨境想就是概念权限来分配剧中人物等级。三个用户有的只有一种权限,有的能够有两种权力。权限的分红很灵活,那样处理操作大大简化了数据库的统筹难度,也进步了数额的条理性。

 

 


Storage

同理,步骤基本与安插Tracker一致,首先是创办Storage服务器的文件目录,须要留意的是同Tracker相比较作者多建了二个目录,因为Storage还须要一个文书存储路径,用于存放接收的公文:

mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data

接下去修改/etc/fdfs目录下的storage.conf配置文件,打开文件后逐一做以下修改:

  1. disabled=false #启用配置文件(默许启用)
  2. group_name=group1 #组名,遵照实情修改
  3. port=23000
    #安装storage的端口号,私下认可是2两千,同三个组的storage端口号必须一律
  4. base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
  5. store_path_count=1 #积存路径个数,必要和store_path个数匹配
  6. store_path0=/opt/fastdfs_storage_data #实质上文件存款和储蓄路径
  7. tracker_server=192.168.111.11:22122 #tracker 服务器的
    IP地址和端口号,若是是单机搭建,IP不要写127.0.0.1,不然运营不成事(此处的ip是自己的CentOS虚拟机ip)
  8. http.server_port=8888 #设置 http 端口号

安插完结后一样要为Storage服务器的起步脚本设置软引用:

ln -s /usr/bin/fdfs_storaged  /usr/local/bin

接下去就能够运行Storage服务了:

service fdfs_storaged start

命令执行后可以看看以下提示:
图片 37

同理,假设开发银行成功,/opt/fastdfs_storage中就足以看看运转后新转变的data和logs目录,端口2两千也应被日常监听,还有有个别就是文本存款和储蓄路径下会扭转多级存款和储蓄目录,那么接下去看看是否运维成功了:
图片 38

如上图,貌似没成功啊,因为运维storage后文件都没生成,为了确认我们看一下storage的端口景况:
图片 39

果真是没运营成功!端口方今照旧只监听了1个,storage的2三千端口并未被监听,那么大家只可以去日志文件中找原因了,进入/opt/fastdfs_storage/logs目录下并打开storaged.log文件:
图片 40

如上海教室,能够看来真的有贰个error,关键音讯是:

ERROR – file: storage_func.c, line: 896, mkdir
“/etc/fastdfs_storage_data/data” fail, errno: 2, error info: No such
file or directory

尚未公文或目录!再回头看一下/etc/fdfs目录下的storage.conf的布局:
图片 41

果然配错了,大家钦赐成了/etc/fastdfs_storage_data目录,而事实上大家创立的岗位是/opt/fastdfs_storage_data,马虎疏忽,老眼昏花!修改路径后再一次重启storage服务,然后再看看data目录和骨子里存款和储蓄文件的/opt/fastdfs_storage_data:
图片 42

如上海体育场合,可以看看/opt/fastdfs_storage/data目录下生成好的pid文件和dat文件,那么再看一下实际文件存款和储蓄路径下是不是有创设好的类别目录呢:
图片 43

如上海体育场面,没有其它难题,data下有256个1级目录,每级目录下又有2伍16个2级子目录总共65536个文件,新写的公文仲以hash的方法被路由到内部有个别子目录下,然后将文件数量直接作为1个本麻芋果件存款和储蓄到该目录中。那么最后大家再看一下storage服务的端口监听意况:
图片 44

如上海体育地方,能够见到那儿早已通常监听tracker的22122端口和storage的2三千端口,至此storage服务器就早已配备达成,鲜明了storage服务器运维成功后,还有一项工作正是看看storage服务器是还是不是已经登记到
tracker服务器(也足以知晓为tracker与storage是还是不是构成成功),运营以下命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

[root@localhost /]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
[2016-09-23 12:59:26] DEBUG – base_path=/opt/fastdfs_storage,
connect_timeout=30, network_timeout=60, tracker_server_count=1,
anti_steal_token=0, anti_steal_secret_key length=0,
use_connection_pool=0, g_connection_pool_max_idle_time=3600s,
use_storage_id=0, storage server id count: 0

server_count=1, server_index=0

tracker server is 192.168.111.11:22122

group count: 1

Group 1:
group name = group1
disk total space = 6818 MB
disk free space = 2169 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0

Storage 1:
id = 192.168.111.11
ip_addr = 192.168.111.11 ACTIVE
http domain =
version = 5.05
join time = 2016-09-23 11:15:54
up time = 2016-09-23 12:33:26
total storage = 6818 MB
free storage = 2169 MB
upload priority = 10
store_path_count = 1
subdir_count_per_path = 256
storage_port = 23000
storage_http_port = 8888
current_write_path = 0
source storage id =
if_trunk_server = 0
connection.alloc_count = 256
connection.current_count = 0
connection.max_count = 0
total_upload_count = 0
success_upload_count = 0
total_append_count = 0
success_append_count = 0
total_modify_count = 0
success_modify_count = 0
total_truncate_count = 0
success_truncate_count = 0
total_set_meta_count = 0
success_set_meta_count = 0
total_delete_count = 0
success_delete_count = 0
total_download_count = 0
success_download_count = 0
total_get_meta_count = 0
success_get_meta_count = 0
total_create_link_count = 0
success_create_link_count = 0
total_delete_link_count = 0
success_delete_link_count = 0
total_upload_bytes = 0
success_upload_bytes = 0
total_append_bytes = 0
success_append_bytes = 0
total_modify_bytes = 0
success_modify_bytes = 0
stotal_download_bytes = 0
success_download_bytes = 0
total_sync_in_bytes = 0
success_sync_in_bytes = 0
total_sync_out_bytes = 0
success_sync_out_bytes = 0
total_file_open_count = 0
success_file_open_count = 0
total_file_read_count = 0
success_file_read_count = 0
total_file_write_count = 0
success_file_write_count = 0
last_heart_beat_time = 2016-09-23 12:58:59
last_source_update = 1970-01-01 08:00:00
last_sync_update = 1970-01-01 08:00:00
last_synced_timestamp = 1970-01-01 08:00:00

如上所示,看到192.168.111.11 ACTIVE
字样即可验证storage服务器已经成功注册到了tracker服务器,同理别忘了添加开机运行,打开/etc/rc.d/rc.local并将如下配置扩充到文件中:

service fdfs_storage start

迄今甘休大家就曾经完成了fastdfs的总体布局,此时也就能够用客户端工具实行文件上传下载的测试了。

第⑩章 用户资料

1.书本105页、10⑦ 、109页和112页操作运转结果

那边根据书本上的代码讲解,举办编辑代码操作,个中蒙受的标题在头里均已境遇过,所以到了此间基本没啥难点。根据书本讲解,运转结果具体如下:

用户简介页面

 图片 45

 

普通用户修改个人音信界面

 图片 46

 

图片 47

管理员修改个人新闻界面

 图片 48

 

图片 49

 

来得用户头像的质感页面

 图片 50

 

 

 

注:本章首要达成博客系统普通用户和大班角色的个人消息编辑功用完成,此处完成没有怎么技能亮点和难点,只要认真实现书本前述部分,这一部分成效完全没有阻力。

 

 


开始测试

测试时索要设置客户端的布置文件,编辑/etc/fdfs目录下的client.conf
文件,打开文件后各类做以下修改:

  1. base_path=/opt/fastdfs_tracker #tracker服务器文件路径
  2. tracker_server=192.168.111.11:22122 #tracker服务器IP地址和端口号
  3. http.tracker_server_port=6666 # tracker 服务器的 http
    端口号,必须和tracker的设置相应起来

布署实现后就足以一成不变文件上传了,先给/opt目录下放一张图片(冰雹阿爸的LOGO):
图片 51

下一场经过执行客户端上传命令尝试上传:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /opt/BLIZZARD.jpg

运行后能够发现给我们回来了一个路径:
图片 52

那就象征大家的文书已经上传成功了,当文件存款和储蓄到某些子目录后,即认为该公文存款和储蓄成功,接下去会为该文件生成四个文本名,文件名由group、存款和储蓄目录、两级子目录、fileid、文件后缀名(由客户端钦赐,主要用来区分文件类型)拼接而成,如下图:
图片 53

同时在前面安顿的storage服务器的实际上文件存款和储蓄路径中也得以依据重回的门道找到实际文件:
图片 54

接下去尝试用浏览器发送HTTP请求访问一下文本:
图片 55

那会儿意识并不能够访问,因为法斯特DFS方今已不帮忙http协议,大家在法斯特DFS
4.0.5的版本更新日志中得以观察这么一条消息:
图片 56

如上海教室,4.0.5本子早先移除了自带的HTTP资助(因为事先自带的HTTP服务较为简单,不可能提供负载均衡等高质量服务),所以余大提供了nginx上使用法斯特DFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,那样做最大的补益正是提供了HTTP服务并且消除了group中storage服务器的同台延迟难点,接下去就具体记录一下fastdfs-nginx-module的设置配置进程。

第31章 博客文章

1.有关书籍119页示范11-8代码

本有的代码在小编GitHub上尚无以身作则代码,即假如要促成导入虚拟数据测试功效,只好自个儿一个代码贰个代码敲。可是,那一个也太多了点,二个假名出错就要改错>~<。从我GitHub上直接克隆下来的代码,即便并未以身作则代码,不过应该是笔者更新代码后,在此处换了另一种完毕格局,因为在品种文件中出现了叁个新的fake.py文件,该公文中代码和演示11-8代码基本接近。

 

2.书本117页、123页、125页和130页操作运转结果

 图片 57

图片 58

 

 图片 59

图片 60

 

注:本章是对博客系统成效的恢弘,主要实现用户编辑发送博客小说,当中还足以行使马克Down来落到实处对文章的编辑撰写。功用具体达成参照书本的代码讲解即可,基本不会遭逢怎么样较难的标题。

 

 


fastdfs-nginx-module

在余大的GitHub上下载好fastdfs-nginx-module上传到我们的CentOS中就能够起来安装了,在装置nginx在此以前供给先安装一些模块重视的lib库,笔者在在此以前写的blog有做详细介绍(Linux
CentOS 7 & Tengine(Nginx)安装与布局),直接贴出安装代码:

yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

 

梯次装好那几个依赖之后就可以开端安装nginx了。

第12章 关注者

1.书本137页和142页实际运作结果

 图片 61

图片 62

 

 图片 63

 

 2.操作完第二2章代码后,假如选拔用户退出,恐怕会现出以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 图片 64

 

消除办法,在models.py文件中找到AnonymousUser类,在这一个类中添加三个艺术,具体代码如下:

@property
def followed_posts(self):
    return Post.query.join(Follow, Follow.followed_id == Post.author_id) \
        .filter(Follow.follower_id == None) 

 图片 65

 

注:本章具体达成部分的困难是关切用户记录的多少库表的设计,即多对对关系会生成一张中间表。其它一些,根据书本上的代码来上机操作,基本不会遇见怎么着困难。

 

 


storage nginx

首先是为storage服务器安装nginx,首先将nginx和fastdfs-nginx-module的安装包上传至CentOS:
图片 66

先是分别开始展览解压:

tar -zxvf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip

 

解压成功后就足以编写翻译安装nginx了,进入nginx目录并输入以下命令进行布置:

./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src

计划成功后会看到如下新闻:
图片 67

进而就足以拓展编写翻译安装了,依次执行以下命令:

make
make install

安装完结后,大家在大家钦命的目录/usr/local/nginx中就足以见见nginx的安装目录了:
图片 68

接下去要修改一下nginx的安插文件,进入conf目录并打开nginx.conf文件出席以下配置:

listen       9999;

location ~/group1/M00 {
      root /opt/fastdfs_storage_data/data;
      ngx_fastdfs_module;
}

下一场进入法斯特DFS的安装目录/usr/local/fastdfs-5.05目录下的conf目录,将http.confmime.types拷贝到/etc/fdfs目录下:

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

接下去还索要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:

cp -r /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

看一下/etc/fdfs目录下当前持有的计划文件:
图片 69

没什么难题,接下去就须求编写制定刚拷贝的那个mod_fastdfs.conf文件了,打开mod_fastdfs.conf并按梯次依次编写翻译以下内容:

  1. base_path=/opt/fastdfs_storage #封存日志目录
  2. tracker_server=192.168.111.11:22122
    #tracker服务器的IP地址以及端口号
  3. storage_server_port=23000 #storage服务器的端口号
  4. url_have_group_name = true #文件 url 中是或不是有 group 名
  5. store_path0=/opt/fastdfs_storage_data # 存储路径
  6. group_count = 3 #设置组的个数,事实上此次只利用了group1

设置了group_count = 3,接下去就须要在文书底部扩大那2个group setting:

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

接下去还索要建立 M00 至存储目录的符号连接:

ln  -s  /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00

最后运转nginx:

/usr/local/nginx/sbin/nginx

体现如下音信验证nginx已运转成功:
图片 70

经过浏览器也足以见到nginx的主页:
图片 71

storage服务器的nginx就早已安装收尾,接下去看一下tracker服务器的nginx安装。

第②3章 用户评价

1.书本148页和151页实际上机械运输转结果

 图片 72

图片 73

 

 

注:本章紧要完成博客的用户评价功用,以及添加了二个体协会助管理员权限,具体达成没有怎么难点,根据书本的代码上机操作即可。

 

 

 


tracker nginx

同理,再装三个nginx,目录命名为nginx2,安装路径照旧放在/usr/local下,由于和事先同一,此处就不再做详细分解:

mkdir nginx2
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install
  • 1
  • 2
  • 3
  • 4
  • 5

接下去照旧是修改nginx2的安排文件,进入conf目录并开拓nginx.conf文件参与以下配置,storage的nginx无需修改listen端口,即默许的80端口,并将upstream指向tracker的nginx地址:

upstream fdfs_group1 {
     server 127.0.0.1:9999;
}

location /group1/M00 {
     proxy_pass http://fdfs_group1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

接下去运转nginx2:

/usr/local/nginx2/sbin/nginx
  • 1

那时访问nginx2的主页,由于尚未改动端口,直接待上访问ip地址即可:
图片 74

最后一步就是急需修改/etc/fdfs目录下的client.conf文件,打开该文件并进入以下配置:

base_path=/data/fastdfs_storage  #日志存放路径
tracker_server=192.168.116.145:22122  #tracker 服务器 IP 地址和端口号
http.tracker_server_port=6666  # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
  • 1
  • 2
  • 3

从那之后关于fastdfs就曾经整整配备完成了,再壹回开始展览测试看看是或不是能健康上传文件并因此http访问文件。

第②4章 应用编程接口

1.书本168页测试打印结果

此地具体操作须要先在CMD中开拓服务,才能赢得api中数据。(PS:推荐一篇博客:http://blog.csdn.net/huang5487378/article/details/60778293

运作结果:

 图片 75

图片 76

 

 

 

HTTP测试

再给/opt目录下上传一张雨夹雪阿爸的LOGO图:
图片 77

因此客户端命令测试上传:
图片 78

如上海体育场所,依旧上传成功,接下去的要害便是经过HTTP测试文件访问,打开浏览器输入ip地址+文件名探访是或不是能符合规律访问该图片:
图片 79

一切正常~ 至此关于法斯特DFS在CentOS 7下的配置测试就已经全体完事了。

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注