废话不多说,直接开撸

首先是一些准备工作:


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..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 (容器ID):/fdfs_conf/tracker.conf `pwd`(当前路径)
docker cp (容器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.
./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:
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:
store_path0=/var/fdfs/store_path url_have_group_name = true //请求路径是否携带组信息

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

ngxinx 配置文件

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

然后启动nginx:

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

启动完成后进行测试

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

docker+fastdfs+nginx 实现分布式大文件存储系统以及视频缓存播放的更多相关文章

  1. FastDFS+Nginx轻量级分布式

    一 简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线 ...

  2. 对于Nginx+PHP实现大文件上传时候需要修改的参数

    post_max_size表示POST表单提交的最大大小upload_max_filesize 表示文件上传的最大大小. 通常post_max_size设置的值必须必upload_max_filesi ...

  3. 使用docker+consul+nginx集成分布式的服务发现与注册架构

    一.环境说明: 1.一台虚拟机,该系统已经装好了docker: ip 192.168.10.224 虚拟网卡,与主机互通 操作系统rhel6 内核 2.6.32  64位 docker版本 1.7.1 ...

  4. centos6.5安装配置fastdfs+nginx实现分布式图片服务器

    一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...

  5. DJANGO技巧两则:模拟MKDIR -P及配合NGINX上传大文件不使超时

    这都是在开发当哪遇到的问题,网上转转,作个记录: http://blog.chinaunix.net/uid-25525723-id-1596574.html http://bookshadow.co ...

  6. nginx上传大文件,413错误解决

    在nginx里增加了配置. client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_se ...

  7. nginx+php设置大文件请求上传(502及504问题处理)

    502问题 php-fpm 修改项: request_terminate_timeout 位置: eg: /etc/php5/fpm2/pool.d/www.conf ; The timeout fo ...

  8. 使用Nginx配置服务静态文件(图片,文本,视频等)

    安装Nginx 安装Nginx较为简单,请参考下方链接或自行百度. 参考链接:https://blog.csdn.net/qq_26666947/article/details/112272058 以 ...

  9. php无法上传大文件完美解决方案

    php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...

随机推荐

  1. 2019南昌邀请赛网络预选赛 J.Distance on the tree(树链剖分)

    传送门 题意: 给出一棵树,每条边都有权值: 给出 m 次询问,每次询问有三个参数 u,v,w ,求节点 u 与节点 v 之间权值 ≤ w 的路径个数: 题解: 昨天再打比赛的时候,中途,凯少和我说, ...

  2. Gaussian Process for Regression

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  3. Fiddler--QuickExec

    QuickExec在Fiddler中提供了比较快捷的功能服务. 在QuickExec输入框中输入命令,能快速地得到想要的结果. 快捷键:打开Fiddler后,按“Alt+q”,可将光标定位到Quick ...

  4. MyBatis # $区别

    方式一: <select id="getUserById" resultType="User" parameterType=”int”> SELEC ...

  5. [物理学与PDEs]第1章第6节 电磁场的标势与矢势 6.1 预备知识

    1.  若 ${\bf B}$ 为横场 ($\Div{\bf B}=0\ra {\bf k}\cdot {\bf B}=0\ra $ 波的振动方向与传播方向平行), 则 $$\bex \exists\ ...

  6. python3 使用pip安装(命令行中)失败或 “not a supported wheel” 解决方案!

    原因1: 安装的不是对应python版本的库,下载的库名中cp36代表python3.6,其它同理. 原因2:(我遇到的情况----下载的是对应版本的库,然后仍然提示不支持当前平台) 百度了一下,说法 ...

  7. 【转载】Pytorch tutorial 之Datar Loading and Processing

    前言 上文介绍了数据读取.数据转换.批量处理等等.了解到在PyTorch中,数据加载主要有两种方式: 1.自定义的数据集对象.数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Datase ...

  8. laravel5.4 打印输出 sql 语句

    直接打印 sql 语句 DB::connection('test_link')->enableQueryLog(); //执行代码 $log = DB::connection('test_lin ...

  9. WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要

    WPF中,代码中准备控制控件内容时,有时会报错:“ 调用线程必须为 STA,因为许多 UI 组件都需要 ”. 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一 ...

  10. Alpha冲刺(10/10)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺倒计时之10(匆匆而过) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 答辩演练 版本演示视频拍摄 接下来的计划 ...