• docker+fastdfs+nginx 实现分布式大文件存储系统以及视频缓存播放


    废话不多说,直接开撸

    首先是一些准备工作:


    1.关闭防火墙 

    service iptables stop

    --- fastdfs虽然在docker部署,但是使用的是主机网络,所以关闭防火墙。

    2  下载fastdfs镜像

    docker pull season/fastdfs

    3

    cd /var
    
    mkdir /fdfs

    所有的文件存放在/var/fdfs中 目录清晰 

    3.1

     下载nginx

    wget http://nginx.org/download/nginx-1.15.9.tar.gz

    3.2 

    安装git  直接去github上下载所需要的包也可以

    yum install git
    git clone https://github.com/happyfish100/fastdfs.git
    git clone https://github.com/happyfish100/libfastcommon.git

    git clone https://github.com/happyfish100/fastdfs-nginx-module.git
     

    下图三个文件都需要下载

    3.3 解压nginx

    tar -zxvf nginx-1.15.9.tar.gz 
    //新建文件夹 存放fastdfs配置文件
    mkdir fdfs_conf

    目录如下

    4 至此准备工作已经OK,接下来就是重点了,如何配置fastdfs以及整合nginx

    4.1 启动一个临时的tracker 拷贝storage.conf tracker.conf 至/var/fdfs/fdfs_conf:

    docker run  -d --name tracker  --net=host season/fastdfs tracker
    docker ps 
    //查询到容器id
    docker cp 404(容器ID):/fdfs_conf/tracker.conf `pwd`(当前路径)
    docker cp 404(容器ID):/fdfs_conf/storage.conf `pwd`(当前路径)

    vim storage.conf 修改tracker_server=实际ip:22122  http.server_port=8888

    启动 tracker 和 storage  实际应用应该是多个tracker 多个storage  这里只做演示用,并没有配置多个,其实一个会配置了,其余都一样的,具体集群配置方法自行百度,这里不再赘述。

     docker run -ti -d --name trakcer -v /var/fdfs/tracker_data:/fastdfs/tracker/data -v /var/fdfs/fdfs_conf/tracker.conf:/fdfs_conf/tracker.conf  --net=host season/fastdfs tracker
    
    docker run -ti --name storage -v /var/fdfs/fdfs_conf/storage.conf:/fdfs_conf/storage.conf -v /var/fdfs/storage_data:/fastdfs/storage/data -v /var/fdfs/store_path1:/fastdfs/store_path --net=host  season/fastdfs storage

    至此,如果发现它在疯狂输出mkdir.. fastdfs就配置好了,就是这么简单。

    接下来就是测试了,测试的话我上了一套简单的java springboot代码, 直接放上代码连接,不再赘述,因为本章主要是讲服务器端的配置。

    从浏览器上传后,我们去linux服务器看一下,

    上传成功了,然后就剩下通过nginx反向代理http请求了。

    接着往下看:

    进入/var/fdfs/libfastcommon

    执行如下命令:

    ./make.sh
    ./make.sh install

    接着进入/var/fdfs/fastdfs

    执行如下命令:

    ./make.sh
    ./make.sh install

    然后下载并安装 安装nginx所需依赖:

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

    进入nginx解压出来的目录

    cd nginx-1.15.9
    ./configure --add-module=/var/fdfs/fastdfs-nginx-module/src
    
    make; make install

    OK,一切顺利的话 你在/usr/local/ 目录下就可以看到nginx了。

    然后将 /var/fdfs/fastdfs/conf 目录下的所有文件copy到 /etc/fdfs中

    cp -r /var/fdfs/fastdfs/conf/* /etc/fdfs/

    将 /var/fdfs/fastdfs-nginx-module/src 目录中的 mod_fastdfs.conf 复制到/etc/fdfs

    /etc/fdfs目录中的所有文件是nginx 整合fastdfs-nginx-module所用到的配置文件

    vim /etc/fdfs/storage.conf

    修改其中内容为:

    base_path=/var/fdfs/store_path
    store_path0=/var/fdfs/store_path
    tracker_server=192.168.6.78:22122
    http.server_port=8888 //需要与nginx监听的端口一致

    vim /etc/fdfs/tracker.conf

    修改其中内容为:

    base_path=/var/fdfs/tracker_data

    vim /etc/fdfs/mod_fastdfs.conf 

    修改其中内容为:

    tracker_server=192.168.6.78:22122
    store_path0=/var/fdfs/store_path

    url_have_group_name = true //请求路径是否携带组信息

    接下来就剩下最后一步了,配置nginx

    ngxinx 配置文件

    vim /usr/local/nginx/conf/nginx.conf
    server {
            listen       8888;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location ~/group([0-9])/M00 {
            # root /var/fdfs/storage_path;
                ngx_fastdfs_module;
          }

    然后启动nginx:  

    cd /usr/local/nginx/sbin
    ./nginx
    
    //重新加载 
    ./nginx -s reload
    //停止
    ./nginx -s stop

    启动完成后进行测试

    OK!!!万事大吉~~~~  需要客户端测试上传文件代码的同学下方留言。

  • 相关阅读:
    HTTP协议
    网络编程笔记
    基于udp协议实现QQ:可以并发一对多
    基于udp协议通信:实现了并发
    基于tcp协议通信,运用socketserver模块实现并发
    @PathVariable 与@RequestParam
    IDEA 中的一些概念变化
    Bubble Cup 11
    ACM超时问题
    D
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/10553469.html
Copyright © 2020-2023  润新知