系列文章目录
- 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
- 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)
- 用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三)
- 用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)
- 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)
- 分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)
- 首页——基于Django框架的天天生鲜电商网站项目系列博客(七)
- 详情页——基于Django框架的天天生鲜电商网站项目系列博客(八)
- 列表页——基于Django框架的天天生鲜电商网站项目系列博客(九)
- 商品搜索——基于Django框架的天天生鲜电商网站项目系列博客(十)
- 购物车记录添加——基于Django框架的天天生鲜电商网站项目系列博客(十一)
- 购物车记录更新——基于Django框架的天天生鲜电商网站项目系列博客(十二)
- 订单生成——基于Django框架的天天生鲜电商网站项目系列博客(十三)
- 订单并发处理——基于Django框架的天天生鲜电商网站项目系列博客(十四)
- 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)
- 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
- 项目总结——基于Django框架的天天生鲜电商网站项目系列博客(十七)
项目资源下载
- 天天生鲜电商网站项目源码Github地址(可Fork可Clone)
- 天天生鲜电商网站项目源码Gitee地址(可Fork可Clone)
- 天天生鲜电商网站项目源码压缩包下载(直接使用)
- 天天生鲜电商网站项目所需全部工具合集打包下载(nginx、libfastcommon、fastdfs-nginx、fastdfs)
- 天天生鲜电商网站项目MySql数据库文件(直接导入MySql数据库)
- Django1.8官方文档(中文版)
文章目录
前言
今天是除夕,先祝各位读者新年快乐哈哈,今天给大家带来的是分布式分拣系统FastDFS,但是我先写在前面,对于有些小伙伴来说这里的知识可能比较困难,如果真的感觉不太好弄的小伙伴我和你说这个并不是必选项,对于只是想把这个网站搭建起来的话,完全可以不用这个模块,因为我第一遍搭建网站的时候嫌麻烦就没弄这里,所以不想弄也没关系,但是知识建议学一学,当然做了更好,如果没做的话,后面的博客我也会介绍不用这个东西怎么进行数据交互,放心好啦。我们使用这个文件系统实现网站所有图片的管理,实现了冗余备份、负载均衡、线性拓展等机制。并且与Nginx配合使用,使用python与FastDFS交互,以及FastDFS的安装配置和整个项目中上传和使用图片的流程,那么,就开始今天的学习吧!
一、FastDFS文件系统简介
1.1 什么是FastDFS
1.2 架构图示
1.3 服务端的两个角色
二、FastDFS上传文件和下载文件流程
2.1 文件上传流程
2.2 文件下载流程
2.3 其他注意事项
三、FastDFS的安装和配置
3.1 安装FastDFS依赖包
- 解压缩
libfastcommon-master.zip
- 进入到
libfastcommon-master
的目录中 - 执行
./make.sh
- 执行
sudo ./make,sh install
3.2 安装FastDFS
- 解压缩
fastdfs-master.zip
- 进入到
fastdfs-master
目录中 - 执行
./make,sh
- 执行
sudo ./make.sh install
3.3 配置跟踪服务器tracker
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
- 在
/home/python/
目录中创建目录fastdfs/tracker mkdir -p /home/python/fastdfs/tracker
- 编辑
/etc/fdfs/tracker.conf
配置文件,sodu vim /etc/fdfs/tracker.conf
修改base_path=/home/python/fastdfs/tracker
3.4 配置存储服务器storage
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
- 在
/home/python/fastdfs/
目录中创建目录storage mkdir -p /home/python/fastdfs/storage
- 编辑
/etc/fdfs/storage.conf
配置文件,sodu vim /etc/fdfs/storage.conf
修改内容:
①:base_path=/home/python/fastdfs/storage
②:store_path0=/home/python/fastdfs/storage
③:tracker_server=自己ubuntu虚拟机的ip地址:22122
3.5 启动tracker和storage
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
3.6 测试是否安装成功
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
- 编辑
/etc/fdfs/clien.conf
配置文件sudo vim /etc/fdfs/client.conf
修改内容:
①:base_path=/home/python/fastdfs/tracker
②:tracker_server=自己ubuntu虚拟机的ip地址:22122
- 上传文件测试:
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件
,如果返回类似group1/M00/00/00/rBIx6NcaP0aARXXvAAHrUgHEviQ394.jpg
的文件id则说明文件上传成功
四、Nginx配合FastDFS使用的安装和配置
4.1 安装nginx
- 解压缩
nginx-1.8.1.tar.gz
- 解压缩
fastdfs-nginx-module-master.zip
- 进入
nginx-1.8.1
目录中 - 依次执行
①:sudo ./configure --prefix=/usr/local/nginx/ --add--module=fastdfs-nginx-module-master 解压后的目录的绝对路径/src
②:sudo ./make
③:sudo ./make install
4.2 安装fastdfs-nginx-module的web服务器epoll
sudo cp fastdfs-nginx-module-master 解压后的目录中/src
下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
- 修改
sudo vim /etc/fdfs/mod_fastdfs,conf
内容:
①:connect_timeout=10
②:tracker_server=自己ubuntu虚拟机的ip地址:22122
③:url_have_group_name=true
④:store_path0=/home/python/fastdfs/storage
sudo cp
解压缩的fastdfs-master
目录conf
目录中的http.conf/etc/fdfs/http.conf
sudo cp
解压缩的fastdfs-master
目录conf
目录中的mime.types/etc/fdfs/mime.types
- 修改
sudo vim /usr/local/nginx/conf/nginx.conf
在http
部分中添加配置信息如下:
server{
listen 8888;
server_name localhost;
location ~/group[0-9]/{
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html{
root html;
}
}
- 启动nginx
sudo /usr/local/nginx/sbin/nginx
五、Nginx配合FastDFS使用的安装和配置
- 修改如下的配置文件(在
/etc/fdfs
目录中)
tracker_server=自己的ip地址:22122
- 启动tracker、storage、nginx服务
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
sudo /usr/local/nginx/sbin/nginx
- 执行如下命令测试是否成功,如果返回类似
group1/M00/00/00/rBIx6NcaP0aARXXvAAHrUgHEviQ394.jpg
的文件id则说明文件上传成功,在浏览器中可以用127.0.0.1:8888/返回的文件id
访问图片
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件
六、项目上传图片和使用图片的流程
七、自定义文件存储类
八、改进自定义文件存储类
总结
终于写完了,前期准备工作也彻底完成了,从下篇博客开始,就是网站的首页编写和数据的导入以及应用了,也快让我们的网站“活”起来啦!