首页 > 其他 > 详细

FastDfs单点集群部署

时间:2020-04-14 12:13:36      阅读:68      评论:0      收藏:0      [点我收藏+]

目录

1 参考文档????3

1.1 简介????3

1.2 fastDFS github下载地址(nginx插件也在此下载)????3

1.3 fastDFS github安装教程????3

1.4 参考安装文档????3

1.5 java client连接示例????3

2 fastDFS简介????3

3 安装环境????4

4 单点安装????4

4.1 安装必要的依赖包????4

4.2 安装libfatscommon????4

4.3 安装fastDFS????4

4.4 安装fastdfs-nginx-modulenginx插件版本与fastDFS版本是对应得5.11应使用1.20????5

4.5 安装nginx????5

4.6 创建数据与日志存储目录????6

4.7 配置tracker????6

4.8 配置storage????6

4.9 启动tracker 启动 storage????7

4.10 配置client测试是否可以上传文件????7

4.11 配置nginx访问????7

4.12 测试nginx web下载????8

5 增加group存储文件????8

5.1 更改配置文件,选择增加的group做何用????8

5.2 创建group2的数据及日志存放路径????9

5.3 在单机单group的基础上更改配置文件(只需要更改两个配置文件,storage_group2.conf, mod_fastdfs.conf)????9

5.3.1 复制一份storage.conf配置文件为storage_group2.conf????9

5.3.2 修改storage_group2.conf配置文件????9

5.3.3 修改mod_fastdfs.conf配置文件????10

5.4 启动trackerd,启动两个storaged????10

5.5 启动nginx 更改完mod_fastdfs.conf 后,例如添加了group 需要重启nignx,不然不生效。????10

5.6 测试group2的上传下载是否成功????10

6 fastDFS集群????11

6.1 两台服务器????11

6.2 安装必要的依赖包(两台同时操作)????11

6.3 安装libfatscommon (两台同时操作)????12

6.4 安装fastDFS (两台同时操作)????12

6.5 安装fastdfs-nginx-modulenginx插件版本与fastDFS版本是对应得5.11应使用1.20)(两台同时操作)????12

6.6 安装nginx(两台同时操作)????13

6.7 创建数据与日志存储目录 (两台同时操作)????13

6.8 配置tracker(两台同时操作)????13

6.9 配置storage(两台同时操作)????14

6.10 启动tracker 启动 storage (两台同时操作)????14

6.11 配置client测试是否可以上传文件????14

6.12 配置nginx访问(两台同时操作)????15

6.13 测试nginx web下载(可以下载说明nginx没有问题)????16

6.14 配置nginx负载均衡(10.0.0.6上)????16

6.15 访问测试(顺便观察日志,查看是否是轮询分配到两台服务器的)????16

7 常用命令????17

7.1 fdfs_monitor查看确认storage是否自动注册到tracker????17

7.2 启动tracker 启动 storage????17

7.3 添加文件到fastdfs????17

7.4 删除添加到fastdfs得文件????17

7.5 删除fastdfsstoraged节点????17

?

?

?

?

?

?

?

?

  1. 参考文档

  2. 简介

https://blog.csdn.net/bjgaocp/article/details/88561854?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

?

  1. fastDFS github下载地址(nginx插件也在此下载)

https://github.com/happyfish100

  1. fastDFS github安装教程

https://github.com/happyfish100/fastdfs/wiki

?

  1. 参考安装文档

https://blog.csdn.net/qq_34301871/article/details/80060235

?

  1. java client连接示例

https://github.com/happyfish100/fastdfs-client-java

?

  1. fastDFS简介

?

?

?

?

?

?

?

  1. 安装环境

系统版本

CentOS Linux release 7.7.1908 (Core)

内核版本

Linux iZ8vbi0h0xw72d5qfizju9Z 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

fastDFS版本

fastdfs-5.11.zip

nginx版本

nginx-1.16.1.tar.gz

nginx fastDFS插件版本

https://github.com/happyfish100/fastdfs-nginx-module/tree/V1.20

nginx fastDFS插件版本 和fastDFS的版本是相对应的

?

?

  1. 单点安装

  2. 安装必要的依赖包

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

?

  1. 安装libfatscommon

git clone https://github.com/happyfish100/libfastcommon.git --depth 1

cd libfastcommon/

/make.sh && ./make.sh install

echo $?

?

  1. 安装fastDFS

cd ~

unzip fastdfs-5.11.zip

cd fastdfs-5.11/

./make.sh && ./make.sh install

echo $?

?

#复制配置文件

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用

cp /root/fastdfs-5.11/conf/http.conf /etc/fdfs/ #nginx访问使用

cp /root/fastdfs-5.11/conf/mime.types /etc/fdfs/ #nginx访问使用

?

?

  1. 安装fastdfs-nginx-module(nginx插件版本与fastDFS版本是对应得5.11应使用1.20)

https://github.com/happyfish100/fastdfs-nginx-module/tree/V1.20

unzip fastdfs-nginx-module-1.20.zip

cp fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

?

#更改config文件,不然nginx添加模块找不到路径会报错,更改文件以下两个选项

vim /root/fastdfs-nginx-module-1.20/src/config

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

?

  1. 安装nginx

tar xf nginx-1.16.1.tar.gz

cd nginx-1.16.1/

?

./configure --prefix=/etc/nginx-1.16.1 --user=nobody --group=noboby --pid-path=/var/run/nginx.pid --with-stream --add-module=/root/fastdfs-nginx-module-1.20/src

?

make && make install

?

ln -s /etc/nginx-1.16.1/ /etc/nginx

ln -s /etc/nginx/sbin/nginx /usr/local/bin/nginx

?

#更改配置文件,去掉user nobody前面得#

vim /etc/nginx/conf/nginx.conf

# user nobody;

?

  1. 创建数据与日志存储目录

mkdir -p /etc/fdfs/data

?

  1. 配置tracker

vim /etc/fdfs/tracker.conf

#需要修改的内容如下

port=22122 # tracker服务器端口(默认22122,一般不修改)

base_path=/etc/fdfs/data # 存储日志和数据的根目录

max_connections=256 #服务器支持的最大连接数

work_threads=1 #工作线程数,通常设置为CPU数量

store_lookup=2 #上传组(group)的方式:0轮询,1:指定,2:负载平衡(剩余空间最大选择)

store_group=group2 #如果上一参数选择1方式,即制定组名,当前参数用来设置指定的组,如果选择其他方式,当前参数无效

store_server=0 #同组推送方式0.轮询方式,1.根据ip地址进行排序选择第一个服务器,2.根据优先级进行排序(优先级由storage.conf的配置文件中upload_priority属性设置)

store_path=0 #选择哪个文件目录进行上传(一个StoreServer上面可以有多个base_path0.轮询,2.剩余空间最大

download_server=0 #选择哪个storeServer最为下载服务器,0.轮询,1.哪个为源则哪个下载

log_level=info #日志级别,最好不要使用info,日志量会很大

?

  1. 配置storage

vim /etc/fdfs/storage.conf

#需要修改的内容如下

port=23000 # storage服务端口(默认23000,一般不修改)

base_path=/etc/fdfs/data # 数据和日志文件存储根目录

store_path0=/etc/fdfs/data # 第一个存储目录

tracker_server=172.26.103.84:22122 # tracker服务器IP和端口

http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,nginx中保持一致)

?

  1. 启动tracker 启动 storage

/etc/init.d/fdfs_trackerd start #启动后端口22122

/etc/init.d/fdfs_storaged start #启动后端口23000

?

  1. 配置client测试是否可以上传文件

vim /etc/fdfs/client.conf

#需要修改的内容如下

base_path=/etc/fdfs/data

tracker_server=172.26.103.84:22122 #tracker服务器IP和端口

#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz

上传任意文件测试是否能上传(并记录下返回值,稍后测试nginx web功能会用到)

fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

?

  1. 配置nginx访问

修改第一个配置文件

vim /etc/fdfs/mod_fastdfs.conf

#需要修改的内容如下

tracker_server=172.26.103.84:22122 #tracker服务器IP和端口

url_have_group_name=true

store_path0=/etc/fdfs/data

修改nginx配置文件

vim /etc/nginx/conf/nginx.conf

include conf.d/*.conf;

#子目录添加如下配置

vim /etc/nginx/conf/conf.d/fdfs.conf

server {

listen 8888; ## 该端口为storage.conf中的http.server_port相同

server_name localhost;

location ~/group[0-9]/ {

ngx_fastdfs_module;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

?

nginx -t

nginx -s reload

?

  1. 测试nginx web下载

用外部浏览器访问刚才已传过的nginx安装包,引用返回的ID

http://39.101.222.104:8888/group1/M00/00/00/rBpnVF5vNmuARquQAA_BtpkkX5U.tar.gz

#弹出下载单机部署全部跑通

?

?

?

?

?

  1. 增加group存储文件

  2. 更改配置文件,选择增加的group做何用

vim /etc/fdfs/tracker.conf

?

选择组来上传文件的方法

# 0:循环赛

# 1:指定组

# 2:负载平衡,选择最大自由空间组上传文件

store_lookup = 0

?

如果等于0,那么就是增加存储空间,数据循环存入group存储文件

如果等于1,那么就可以看作为数据隔离,指定数据上传到指定组

如果等于2,那么就是增加存储空间,数据循环存入group存储文件

?

  1. 创建group2的数据及日志存放路径

mkdir -p /etc/fdfs/data_group2

?

  1. 在单机单group的基础上更改配置文件(只需要更改两个配置文件,storage_group2.conf, mod_fastdfs.conf)

    1. 复制一份storage.conf配置文件为storage_group2.conf

cp /etc/fdfs/storage.conf /etc/fdfs/storage_group2.conf

?

  1. 修改storage_group2.conf配置文件

vim /etc/fdfs/storage_group2.conf

#主要需要修改

port=23001 #端口不能与已经启动的group1相同

group_name=group2

base_path=/etc/fdfs/data_group2 #数据及日志存放路径

store_path0=/etc/fdfs/data_group2

tracker_server=172.26.103.84:22122 #指定注册到哪个tracker_server

log_level=info #log日志级别

?

  1. 修改mod_fastdfs.conf配置文件

vim /etc/fdfs/mod_fastdfs.conf

#主要需要修改

group_name=group1/group2

group_count = 2

?

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/etc/fdfs/data/

?

[group2]

group_name=group2

storage_server_port=23001

store_path_count=1

store_path0=/etc/fdfs/data_group2

?

  1. 启动trackerd,启动两个storaged

/etc/init.d/fdfs_trackerd restart

/etc/init.d/fdfs_storaged restart

/usr/bin/fdfs_storaged /etc/fdfs/storage_group2.conf start

  1. 启动nginx 更改完mod_fastdfs.conf 后,例如添加了group 需要重启nignx,不然不生效。

nginx

nginx -s reload

?

  1. 测试group2的上传下载是否成功

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/ceshi.jpg 172.26.103.84:23001

#以下返回值确实为group2

group2/M00/00/00/rBpnVF5wbjeAGaxnAACcsysMeDk075.jpg

?

#尝试通过nginx web打开此group2,能打开则group2成功

http://39.101.222.104:8888/group2/M00/00/00/rBpnVF5wbjeAGaxnAACcsysMeDk075.jpg

?

?

  1. fastDFS集群

  2. 两台服务器

10.0.0.6 192.168.1.6

10.0.0.7 192.168.1.7

技术分享图片

?

  1. 安装必要的依赖包(两台同时操作)

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

?

  1. 安装libfatscommon (两台同时操作)

git clone https://github.com/happyfish100/libfastcommon.git --depth 1

cd libfastcommon/

/make.sh && ./make.sh install

echo $?

?

  1. 安装fastDFS (两台同时操作)

把安装包上传到服务器

cd ~

yum install unzip -y

unzip fastdfs-5.11.zip

cd fastdfs-5.11/

./make.sh && ./make.sh install

echo $?

?

#复制配置文件

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用

cp /root/fastdfs-5.11/conf/http.conf /etc/fdfs/ #nginx访问使用

cp /root/fastdfs-5.11/conf/mime.types /etc/fdfs/ #nginx访问使用

?

?

  1. 安装fastdfs-nginx-module(nginx插件版本与fastDFS版本是对应得5.11应使用1.20)(两台同时操作)

https://github.com/happyfish100/fastdfs-nginx-module/tree/V1.20

unzip fastdfs-nginx-module-1.20.zip

cp fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

?

#更改config文件,不然nginx添加模块找不到路径会报错,更改文件以下两个选项

vim /root/fastdfs-nginx-module-1.20/src/config

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

?

  1. 安装nginx(两台同时操作)

tar xf nginx-1.16.1.tar.gz

cd nginx-1.16.1/

?

./configure --prefix=/etc/nginx-1.16.1 --user=nobody --group=noboby --pid-path=/var/run/nginx.pid --with-stream --add-module=/root/fastdfs-nginx-module-1.20/src

?

make && make install

?

ln -s /etc/nginx-1.16.1/ /etc/nginx

ln -s /etc/nginx/sbin/nginx /usr/local/bin/nginx

?

#更改配置文件,去掉user nobody前面得#

vim /etc/nginx/conf/nginx.conf

# user nobody;

?

  1. 创建数据与日志存储目录 (两台同时操作)

mkdir -p /etc/fdfs/data

?

  1. 配置tracker(两台同时操作)

vim /etc/fdfs/tracker.conf

#需要修改的内容如下

port=22122 # tracker服务器端口(默认22122,一般不修改)

base_path=/etc/fdfs/data # 存储日志和数据的根目录

max_connections=256 #服务器支持的最大连接数

work_threads=1 #工作线程数,通常设置为CPU数量

store_lookup=2 #上传组(group)的方式:0轮询,1:指定,2:负载平衡(剩余空间最大选择)

store_group=group2 #如果上一参数选择1方式,即制定组名,当前参数用来设置指定的组,如果选择其他方式,当前参数无效

store_server=0 #同组推送方式,可以设置优先存储到哪个storage 0.轮询方式,1.根据ip地址进行排序选择第一个服务器,2.根据优先级进行排序(优先级由storage.conf的配置文件中upload_priority属性设置)

store_path=0 #选择哪个文件目录进行上传(一个StoreServer上面可以有多个base_path0.轮询,2.剩余空间最大

download_server=0 #选择哪个storeServer最为下载服务器,0.轮询,1.哪个为源则哪个下载

log_level=info #日志级别,最好不要使用info,日志量会很大

?

  1. 配置storage(两台同时操作)

vim /etc/fdfs/storage.conf

#需要修改的内容如下

port=23000 # storage服务端口(默认23000,一般不修改)

base_path=/etc/fdfs/data # 数据和日志文件存储根目录

store_path0=/etc/fdfs/data # 第一个存储目录

tracker_server=192.168.1.6:22122 # tracker服务器IP和端口

tracker_server=192.168.1.7:22122

http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,nginx中保持一致)

?

  1. 启动tracker 启动 storage (两台同时操作)

/etc/init.d/fdfs_trackerd start #启动后端口22122

/etc/init.d/fdfs_storaged start #启动后端口23000

?

?

  1. 配置client测试是否可以上传文件

vim /etc/fdfs/client.conf

#需要修改的内容如下

base_path=/etc/fdfs/data

tracker_server=192.168.1.6:22122 #tracker服务器IP和端口

tracker_server=192.168.1.7:22122

#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz

上传任意文件测试是否能上传(并记录下返回值,稍后测试nginx web功能会用到)

fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

查看两台服务器data路径下,如果都有此文件,说明搭建成功

cd /etc/fdfs/data/data/00/00

?

?

  1. 配置nginx访问(两台同时操作)

修改第一个配置文件

vim /etc/fdfs/mod_fastdfs.conf

#需要修改的内容如下

tracker_server=192.168.1.6:22122 #都写本机的tracker服务器IP和端口,可以多写,为了负载均衡方便只写一个

url_have_group_name=true

store_path0=/etc/fdfs/data

修改nginx配置文件

vim /etc/nginx/conf/nginx.conf

include conf.d/*.conf;

#子目录添加如下配置

mkdir /etc/nginx/conf/conf.d/

vim /etc/nginx/conf/conf.d/fdfs.conf

server {

listen 8888; ## 该端口为storage.conf中的http.server_port相同

server_name localhost;

location ~/group[0-9]/ {

ngx_fastdfs_module;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

?

nginx -t

nginx -s reload

?

  1. 测试nginx web下载(可以下载说明nginx没有问题)

用外部浏览器访问刚才已传过的nginx安装包,引用返回的ID

http://10.0.0.6:8888/group1/M00/00/00/rBpnVF5vNmuARquQAA_BtpkkX5U.tar.gz

http://10.0.0.7:8888/group1/M00/00/00/rBpnVF5vNmuARquQAA_BtpkkX5U.tar.gz

?

?

  1. 配置nginx负载均衡(10.0.0.6上)

vim /etc/nginx/conf/conf.d/fdfs_stream.conf

?

技术分享图片

?

vim /etc/nginx/conf/nginx.conf

?

技术分享图片

?

?

  1. 访问测试(顺便观察日志,查看是否是轮询分配到两台服务器的)

http://10.0.0.6/group1/M00/00/00/wKgBBl5wi8CAe4vqAAZ68RYWD38.11.zip

?

  1. 后续如果空间不够可以增加store_path0,负载不够就在加一套单点然后修改一下其他得配置文件即可

?

?

?

  1. fastDFS监控系统 fastdfs-zyc

https://www.cnblogs.com/shihaiming/p/6283681.html

?

  1. 常用命令

?

  1. fdfs_monitor查看确认storage是否自动注册到tracker中

fdfs_monitor /etc/fdfs/storage.conf

?

  1. 启动tracker 启动 storage

/etc/init.d/fdfs_trackerd start #启动后端口22122

/etc/init.d/fdfs_storaged start #启动后端口23000

?

  1. 添加文件到fastdfs

fdfs_upload_file /etc/fdfs/client.conf /root/fastdfs-5.11.zip

  1. 删除添加到fastdfs得文件

fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgBBl5wi8CAe4vqAAZ68RYWD38.11.zip

?

  1. 删除fastdfs得storaged节点,及不同步处理

https://blog.csdn.net/ever_siyan/article/details/88866690

FastDfs单点集群部署

原文:https://www.cnblogs.com/-luoke/p/12696718.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!