• FastDFS学习(四)



    目录:

    (1)FastDFS搭建集群的环境准备

    (2)FastDFS集群搭建负载均衡环境-使用Nginx进行负载均衡


    (1)FastDFS搭建集群的环境准备

    架构图

    • 如果你公司刚好用这个,那你就会搭建集群
    • 涉及到多个Linux,你可以更进一步熟悉一下Linux
    • 提升自己驾驭复杂环境的能力

     

    新建7台虚拟机:

    Xshell中创建6个连接,分别连向不同的Linux

     这里我们没有使用Xshell

    分别连接:

    由于迷你版Linux缺少一些常用的工具库,操作起来不方便,推荐安装如下的工具库

    • 安装lrzsz, yum install lrzsz -y
    • 安装wget, yum install wget -y
    • 安装vim, yum install vim -y
    • 安装unzip,yum install unzip -y
    • 安装ifconfig,yum install net-tools -y

     yum install –y lrzsz wget vim unzip net-tools

     在这六个窗口依次执行: yum install –y lrzsz wget vim unzip net-tools

     

    安装nginx及fastdfs需要的库依赖:
       yum install -y gcc perl openssl openssl-devel pcre pcre-devel zlib zlib-devel libevent libevent-devel 


    第三步 安装fastdfs 
       1、 上传fastdfs的安装包和libfastcommon的安装包
       2、 解压libfastcommon 安装libfastcommon
       3、 解压fastdfs 安装fastdfs
       4、 拷贝fastdfs目录中的http.conf和mime.types到/etc/fdfs 目录中
    注:6台机器全部执行这些操作
     

     通过Windows连接Linux:使用put命令上传

     都上传成功:

     解压文件:环境文件

    每台先进行编译 

     每台执行安装:

     每台解压:fdfs

     按装:

    执行install命令:

    每个解压:fastdfs

     每个安装:

     

     查看一下是否出现:

    每个都复制一下文件: 


    第四步:部署两个tracker server服务器,需要做的工作:

        修改两个tracker服务器的配置文件:
        tracker.conf: 修改一个地方:
        base_path=/opt/fastdfs/tracker   #设置tracker的数据文件和日志目录(需预先创建)
        启动tracker服务器 fdfs_trackerd /etc/fdfs/tracker.conf

    编辑两台tracker的配置文件:130、133

     编辑:

    修改:

    分别启动130、133的:tracker

     所有ip都开放一下端口:

    第五步 修改两个组中的4台storage中storage.conf文件
        第一组group1的第一个storage server(修改storage.conf配置文件):
        group_name=group1   #组名,根据实际情况修改,值为 group1 或 group2
        base_path=/opt/fastdfs/storage   #设置storage的日志目录(需预先创建)
        store_path0=/opt/fastdfs/storage/files    #存储路径
        tracker_server=192.168.171.135:22122  #tracker服务器的IP地址以及端口号
        tracker_server=192.168.171.136:22122

        第二组group2的第一个storage server(修改storage.conf配置文件):
        group_name=group2   #组名,根据实际情况修改,值为 group1 或 group2
        base_path=/opt/fastdfs/storage   #设置storage的日志目录(需预先创建)
        store_path0=/opt/fastdfs/storage/files    #存储路径
        tracker_server=192.168.171.135:22122  #tracker服务器的IP地址以及端口号
        tracker_server=192.168.171.136:22122
       
        启动storage服务器
        fdfs_storaged /etc/fdfs/storage.conf

    使用之前的Java代码测试FastDFS的6台机器是否可以上传文件
    注意:FastDFS默认是带有负载均衡策略的可以在tracker的2台机器中修改tracker.conf文件
        store_lookup=1

        0 随机存放策略
        1 指定组
        2 选择磁盘空间的优先存放 默认值

        修改后重启服务
        fdfs_trackerd /etc/fdfs/tracker.conf restart
     

    这里是两组第一组:131、132 是group1

    第二组:134、135是group2

    第一组:

     编辑:

    修改:

    第二组:

    修改:

      

     启动storage:

    使用Java代码测试:

    修改配置文件:

     测试文件上传:

     查看131:

    (2)FastDFS集群搭建负载均衡环境-使用Nginx进行负载均衡

    第六步 安装 nginx ,使用nginx 对fastdfs 进行负载均衡 
        上传 nginx-1.12.2.tar.gz以及 nginx的fastdfs扩展模块安装包fastdfs-nginx-module-master.zip
        添加nginx的安装依赖
           yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
        解压nginx
           tar -zxvf  nginx-1.12.2.tar.gz
        解压fastdfs扩展模块
           unzip fastdfs-nginx-module-master.zip
        配置nginx的安装信息
           2台tracker服务器的配置信息(不需要fastdfs模块)
             ./configure --prefix=/usr/local/nginx_fdfs
           4台storage服务器其的配置信息(需要使用fastdfs模块)
             ./configure --prefix=/usr/local/nginx_fdfs --add-module=/root/fastdfs-nginx-module-master/src
        编译并安装nginx
           ./make
           ./make install

        4台storage的服务器需要拷贝mod_fastdfs文件
        将/root/fastdfs-nginx-module-master/src目录下的mod_fastdfs.conf文件拷贝到 /etc/fdfs/目录下,这样才能正常启动Nginx;

    在131、132、134、135安装fastdfs-nginx 

     解压fastdfs-nginx:

    移动目录:

     上传nginx:从130-135都上传一份

    使用命令上传:

     

     

     

     解压缩:

     

    2台tracker服务器的配置信息(不需要fastdfs模块)

     添加nginx的安装依赖

    4台storage的服务器需要拷贝mod_fastdfs文件 

      4台storage服务器其的配置信息(需要使用fastdfs模块)

    6台执行 

     

    第七步 配置tracker 的两台机器的nginx
        进入安装目录
        cd /usr/local/nginx_fdfs

        添加一个location 对请求进行拦截,配置一个正则规则 拦截fastdfs的文件路径, 并将请求转发到其余的4台storage服务器(修改 conf目录下nginx.conf 文件)
        #nginx拦截请求路径:
        location ~ /group[1-9]/M0[0-9] {   
            proxy_pass http://fastdfs_group_server; 
        }

        添加一个upstream 执行服务的IP为 另外的4台stroage 的地址
        #部署配置nginx负载均衡:
        upstream fastdfs_group_server {  
            server 192.168.171.137:80;  
            server 192.168.171.138:80;
            server 192.168.171.139:80;  
            server 192.168.171.140:80;  
        }

    130、133

     编辑:

    修改:

     

     

     

     

    第八步 配置另外4台storage的nginx添加http访问的请求路径拦截
        进入安装目录
        cd /usr/local/nginx_fdfs
        添加一个location 对请求进行拦截,配置一个正则规则 拦截fastdfs的文件路径,使用fastdfs的nginx模块转发请求(修改 conf目录下nginx.conf 文件)
        #nginx拦截请求路径:
        location ~ /group[1-9]/M0[0-9] {   
            ngx_fastdfs_module;
        }
     

    131、132、134、135

    编辑:

    修改: 

     

     

     

    启动130、133的nginx:

     

     

    第九步 分别修改4台storage服务器的mod_fasfdfs.conf文件(/etc/fdfs/mod_fastdfs.conf)
        #修改基本路径,并在指定路径创建对应文件夹
        base_path=/opt/fastdfs/nginx_mod #保存日志目录
        #指定两台tracker服务器的ip和端口
        tracker_server=192.168.171.135:22122  #tracker服务器的IP地址以及端口号
        tracker_server=192.168.171.136:22122
        #指定storage服务器的端口号
        storage_server_port=23000 #通常情况不需要修改
        #指定当前的storage服务器所属的组名 (当前案例03和04为group1 05和06为group2)
        group_name=group1  #当前服务器的group名
        #指定url路径中是否包含组名 (当前案例url包含组名)
        url_have_group_name=true     #文件url中是否有group名
        store_path_count=1           #存储路径个数,需要和store_path个数匹配(一般不用改)
        store_path0=/opt/fastdfs/storage/files    #存储路径
        #指定组个数,根据实际配置决定,(当前案例拥有2个组group1和group2)
        group_count = 2                   #设置组的个数

     

     在末尾增加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

        第一个组的第二个storage按照相同的步骤操作;

        另外一个组的两个storage也按照相同的步骤操作;

        #测试nginx的配置文件是否正确(测试全部6台服务器)
           /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t
        #启动nginx服务器(全部6台服务器)
          /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf

     

    编辑:131、132、134、135

    修改:

     

        base_path=/opt/fastdfs/nginx_mod #保存日志目录 

     

     

     

        tracker_server=192.168.171.130:22122  #tracker服务器的IP地址以及端口号
        tracker_server=192.168.171.133:22122

     

     131、132使用group1

    false改为true 

     

     

     

     

     

     

    创建文件夹:

     

    134、135 执行相同的操作

     修改:

        base_path=/opt/fastdfs/nginx_mod #保存日志目录 

        tracker_server=192.168.171.130:22122  #tracker服务器的IP地址以及端口号
        tracker_server=192.168.171.133:22122

     

     

     

     

        

     

     

     

     

     

     

     创建目录:

     

    第十步:部署前端用户访问入口服务器,即访问192.168.230.128上的Nginx,该Nginx负载均衡到后端2个tracker server;
        配置nginx.conf文件
        location ~ /group[1-9]/M0[0-9] {   
            proxy_pass http://fastdfs_group_server; 
        }

        添加一个upstream 执行服务的IP为 2台tracker 的地址
        #部署配置nginx负载均衡:
        upstream fastdfs_group_server {  
            server 192.168.116.130:80;  
            server 192.168.116.133:80; 
        }

    测试:使用浏览器访问128(唯一入口的nginx服务器)服务器中的fastdfs文件
    注意:由于之前128的nginx中可能拥有静态资源拦截会导致访问不到文件,这时可以注释或删除这些静态资源拦截
     

    首先启动nginx:131、132、134、135

     

    130、131、133都可以访问原来上传的图片

     

     

     

    启动129服务器:

    复制一份配置文件:

     

    第十步:部署前端用户访问入口服务器,即访问192.168.230.129上的Nginx,该Nginx负载均衡到后端2个tracker server; 

    编辑:

     

    修改: 

     

     

    添加一个upstream 执行服务的IP为 2台tracker 的地址
        #部署配置nginx负载均衡: 

     

     启动129nginx:

    就可以通过129进行访问了 

  • 相关阅读:
    C++ Reference: Standard C++ Library reference: C Library: cwchar: fwscanf
    【Proteus仿真】【STM32单片机】汽车车窗除霜系统设计
    js-hodgepodge 一个全面的JS工具库
    物流行业采购协同管理系统:规范采购体系,加快物流行业采购数字化升级
    【无标题】光伏逆变器的IEC62109测试,逆变器IEC62109测试项目
    JAVA创新创业竞赛管理系统2021计算机毕业设计Mybatis+系统+数据库+调试部署
    Spring源码分析(三) bean的生命周期 createBean()和doCreateBean()
    大模型参数高效微调技术原理综述(二)-BitFit、Prefix Tuning、Prompt Tuning
    服务器硬件的基础知识
    acwing 826. 单链表 学习笔记
  • 原文地址:https://blog.csdn.net/dengfengling999/article/details/127838476