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..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 实现分布式大文件存储系统以及视频缓存播放的更多相关文章
- FastDFS+Nginx轻量级分布式
一 简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线 ...
- 对于Nginx+PHP实现大文件上传时候需要修改的参数
post_max_size表示POST表单提交的最大大小upload_max_filesize 表示文件上传的最大大小. 通常post_max_size设置的值必须必upload_max_filesi ...
- 使用docker+consul+nginx集成分布式的服务发现与注册架构
一.环境说明: 1.一台虚拟机,该系统已经装好了docker: ip 192.168.10.224 虚拟网卡,与主机互通 操作系统rhel6 内核 2.6.32 64位 docker版本 1.7.1 ...
- centos6.5安装配置fastdfs+nginx实现分布式图片服务器
一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...
- DJANGO技巧两则:模拟MKDIR -P及配合NGINX上传大文件不使超时
这都是在开发当哪遇到的问题,网上转转,作个记录: http://blog.chinaunix.net/uid-25525723-id-1596574.html http://bookshadow.co ...
- nginx上传大文件,413错误解决
在nginx里增加了配置. client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_se ...
- nginx+php设置大文件请求上传(502及504问题处理)
502问题 php-fpm 修改项: request_terminate_timeout 位置: eg: /etc/php5/fpm2/pool.d/www.conf ; The timeout fo ...
- 使用Nginx配置服务静态文件(图片,文本,视频等)
安装Nginx 安装Nginx较为简单,请参考下方链接或自行百度. 参考链接:https://blog.csdn.net/qq_26666947/article/details/112272058 以 ...
- php无法上传大文件完美解决方案
php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...
随机推荐
- VMware下安装linux虚拟机
安装VMware [下一步] [下一步] 点击[自定义],[下一步] 更改安装目录,[下一步] [下一步] [下一步] [跳过] [完成] 点击桌面图标 如下勾选,输入邮箱,[继续] [完成] 安装l ...
- 主席树[可持久化线段树](hdu 2665 Kth number、SP 10628 Count on a tree、ZOJ 2112 Dynamic Rankings、codeforces 813E Army Creation、codeforces960F:Pathwalks )
在今天三黑(恶意评分刷上去的那种)两紫的智推中,突然出现了P3834 [模板]可持久化线段树 1(主席树)就突然有了不详的预感2333 果然...然后我gg了!被大佬虐了! hdu 2665 Kth ...
- bzoj5028小Z的加油店(线段树+差分)
题意:维护支持以下两种操作的序列:1 l r询问a[l...r]的gcd,2 l r x把a[l...r]全部+x 题解:一道经典题.根据gcd(a,b)=gcd(a-b,b)以及区间加可知,这题可以 ...
- Python 操作集合
Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...
- 不得不用的提高效率小技巧让你用Mac更顺手| Mac小技巧(三)
文章内容及图片来源于:知乎,如果涉及版权问题,请联系作者删除 文章收录于:风云社区(提供上千款各类mac软件的下载) 1. 用预览给GIF删帧 我们在给文章配图或者做表情包的过程中,常需要截取 GIF ...
- js重点--闭包
闭包: 1.获取到局部变量,相当于是函数局部与外部的桥梁 2.使局部变量保存在内存中,不被回收 <script> function outerFn() { var outerVar = 0 ...
- [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.2 应力张量
1. 在有粘性的情形, 外界流体对 $\Omega$ 的作用力, 不仅有表面上的压力 (正压力), 也有表面上的内摩擦力 (切应力). 2. 于 $M$ 处以 ${\bf n}$ 为法向的单位面积 ...
- 在Spring框架中bean配置文件中constructor-arg标签中没有name元素?
bean配置文件出现错误的依赖: <beans <beans xmlns="http://www.springframework.org/schema/beans" ...
- golang slice分割和append copy还是引用
转载自:http://studygolang.com/articles/724 1. slice1:= slice[0:2] 引用,非复制,所以任何对slice1或slice的修改都会影响对方 dat ...
- 入门嵌入式选择2440?树莓派?STM32?4412开发板?
如果了解一下当前IT和物联网发展的形势,就会发现Android工程师越来越受欢迎,相比之下单纯的Linux工程师却逊色不少,当然,Android系统的内核也是Linux的,Linux和Android作 ...