IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 第三章、一文告诉你FastDFS分布式如何部署 -> 正文阅读

[PHP知识库]第三章、一文告诉你FastDFS分布式如何部署

? ? ? ? 上一章节介绍了FastDFS的单机部署和使用,但是实际上的场景中不可能只用单机来做,更多的时候是采用集群部署,那么本章就带大家进入集群部署的研究。

1、准备环境

? ? ? ? 我这里采用7台,当然你们按照自己的选择,最外层的Nginx是用来进行统一域名+请求转发,另外我设定了2个tracker分别负载到2个组,如果不清楚这些概念可以看我的第一章节基础部分。15+16作为组1,互为主备;17+23作为组2,互为主备;13+14分别为两个tracker。

? ? ? ? group1的两台机器大小一模一样,要是1TB都是1TB,group2也是一样,所以存储空间一共是4TB,真实的空间是2TB,因为两个组的数据互为主备。如果后面空间不够用的话,我们只需要加group3,group4...FastDFS没有要求组和组大小一样,但是要求同一个组内的配置,数据是一样的。所以group3你可以搞很多个主备,保证每个主备配置一样就可以。大小也没有限制和其他组要求一样,这个需要提前说明下。

2、部署步骤

? ? ? ? 每个节点上执行如下命令,准备环境

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

? ? ? ? 13节点和14节点是tracker,所以在这两台节点在/usr/local/src(没有就自己创建一个这样的目录)当然你放在其他目录下都可以;

? ? ? ? 把这两个文件上传到/usr/local/src下

  • libfastcommon(FastDFS分离出的一些公用函数包)
  • fastdfs(FastDFS本体)

? ? ? ? 同样15、16、17、23这四台的group1和group2也上传上面两个文件

? ? ? ? 完成后分别进行解压,安装

tar -zxvf libfastcommon.tar.gz

tar -zxvf fastdfs.tar.gz

cd /libfastcommon

cd fastdfs/

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

? ? ? ? 这样6台就先装好了fastdfs本体和lib包。

? ? ? ? 然后这6台都进行下面的操作

cd /fastdfs/conf

# 拷贝两个文件
cp mime.types http.conf /etc/fdfs/

? ? ? ? 修改tracker server节点(13、14)的下的/etc/fdfs/目录下的tracker.conf

#服务器ip为 192.168.52.1
#我建议用ftp下载下来这些文件 本地修改
vim /etc/fdfs/tracker.conf
 
#需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
 
base_path=/opt/fastdfs/tracker  # 这里一定要提前先手动mkdir,不然找不到存储日志和数据的根目录

? ? ? ? 修改剩下group1(15、16),group2(17、23)的节点/etc/fdfs/目录的storage.conf

vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000  # storage服务端口(默认23000,一般不修改)

# 是组1就写group1,组2就写group2
group_name = group1
 
base_path=/opt/fastdfs/storage  # 数据和日志文件存储根目录
 
store_path0=/opt/fastdfs/storage/files  # 第一个存储目录

# tracker服务器IP和端口,注意这里单机只配一个就好了,多个主备配多个
tracker_server=13节点:22122  
tracker_server=14节点:22122
 
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

? ? ? ? 把这个storage.conf传到4台组1和组2的/etc/fdfs目录下,记得修改storage.conf文件中的group_name;

? ? ? ? 接下来我们就可以启动tracker两台13和14

fdfs_trackerd /etc/fdfs/tracker.conf

? ? ? ? 启动完成后,剩下4台storage启动

fdfs_storaged /etc/fdfs/storage.conf

? ? ? ? 如果启动失败,记得看下/opt/fastdfs/storage/log下的日志

? ? ? ? 那么我们现在集群全部都启动成功了!

????????在启动前我们要先关闭所有storage和tracker之间的防火墙,不然后面文件访问不了:?

#不关闭防火墙的话无法使用
systemctl stop firewalld.service #关闭
systemctl restart firewalld.service #重启

????????我们在13节点上用命令测试下:

# 自己随便创建一个文件1.txt
fdfs_upload_file /etc/fdfs/client.conf 1.txt

? ? ? ? 返回成功。

? ? ? ? 这里注意,如果有时候发现总是往一台上打的话,不是说明负载有问题,而是有个配置

? ? ? ? tracker.conf里有这么两个配置

? ? ? ? store_lookup:0表示轮询;1表示上传到指定的组,配合store_group确定(一般不建议这么做);?2表示负载均衡,选择一个空间较大的组进行上传。

? ? ? ? 那么到这,集群配置完毕!

? ? ? ? 因为我们没有部署nginx,所以我们无法访问图片资源。

3、Nginx部署

? ? ? ? 我们同样要在6台(2个tracker,4个storage)机子上传nginx,也在/usr/local/src上传到这里。

? ? ? ? 2个tracker_server是用做负载均衡的,只上传nginx就行,均衡访问4台storage。

  • nginx1.15.4

? ? ? ? 4个storage是nginx扩展模块,需要上传nginx扩展块和nginx,具体来访问文件资源。

  • nginx1.15.4
  • fastdfs-nginx-module(FastDFS和nginx的关联模块)

? ? ? ? 在这6台上执行nginx编译环境的命令脚本

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

? ? ? ? 在13和14上解压nginx包,执行以下命令

tar -zxvf nginx-1.15.4.tar.gz

cd /nginx-1.15.4

./configure  --prefix=/usr/local/nginx_fdfs

make && make install

? ? ? ? 在4台storage解压扩展模块和nginx,一定要先解压,和后面步骤不能颠倒。

tar -zxvf fastdfs-nginx-module.tar.gz

tar -zxvf nginx-1.15.4.tar.gz

? ? ? ? 把当前nginx扩展模块里的某个路径先记录下来后面要加扩展模块的路径

/usr/local/src/fastdfs-nginx-module/src

? ? ? ? 然后进入4台的nginx-1.15.4目录下,执行如下命令

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

make && make install

? ? ? ? 如果报错这个,说明你上面的命令有少的,要么没解压扩展模块要么没做nginx编译环境初始化。

centos 7.2 make: *** No rule to make target `build', needed by `default'. Stop

? ? ? ? 到这6个nginx就准备完成了。

? ? ? ? 然后配置tracker server2台机器的nginx

? ? ? ? cd /usr/local/nginx_fdfs/conf,修改nginx.conf配置

? ? ? ? ?两台tracker server都这么配置!

? ? ? ? 启动2台tracker server的nginx

/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf

? ? ? ? 启动成功如图

? ? ? ? ?配置另外4台storage的nginx添加http访问路径的拦截

? ? ? ? cd /usr/local/nginx_fdfs/conf,修改nginx的配置

? ? ? ? ?四台记得都要修改这个nginx.conf

? ? ? ? 然后把这个mod_fastdfs.conf文件下载下来修改

? ? ? ? ?这些参数按照我发的配置调整下:

base_path=/opt/fastdfs/nginx_mod

tracker_server=10.12.105.13:22122
tracker_server=10.12.105.14:22122

# 这里要区分下 group1上传的和group2的配置区别只有这里,其他的参数一样
group_name=group1

url_have_group_name = true

store_path0=/opt/fastdfs/files

group_count = 2


[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs/storage/files

? ? ? ? 把mod_fastdfs.conf文件分别上传到4台storage的/etc/fdfs下,注意这里的group_name修改。

? ? ? ? 还要注意需要手动生成这些目录/opt/fastdfs/nginx_mod

? ? ? ? 启动4台nginx

/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf

? ? ? ? 启动好后,我们访问任意一台storage成功

? ? ? ? ?目前访问文件资源就完成了!!

? ? ? ? 但是这样的话用户就要记住6个地址ip,这样的情况下是有问题的;

? ? ? ? 所以我们考虑在最外层做一个nginx统一域名,转发到两个tracker server

? ? ? ? 20节点我们作为最外层的nginx,修改nginx.conf

? ? ? ? ?最终启动外层的nginx就可以了,大功告成!!

????????

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:34:35  更:2021-09-11 18:34:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/20 7:33:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码