ubuntu fastdfs配置和使用

一、什么是fastdfs?

	FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了**冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标**,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
	FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文 件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。 
	1. Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些 策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务 器。 
	2. Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上, Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。

二、fastdfs安装与配置(单台)

	1. 依赖包安装--- libfastcommon-master.zip
			1. 解压 libfastcommon-master.zip
			2. 进入到解压目录后执行./make.sh
			3. 执行 sudo ./make.sh install
			
	2. fdfs安装 ---fastdfs-master.zip
			1. 解压缩fastdfs-master.zip
			2. 进入到解压目录后执行./make.sh
			3. 执行 sudo ./make.sh install
	
	3. 配置服务器tracker
			1. 复制样本tracker配置文件  sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
			2. 在/home下创建在目录 fastdfs/tracker,保存其数据和日志文件
			3. 编辑/etc/fdfs/tracker.conf配置文件,修改base_path=/home/xxx/fastdfs/tracker
	
	4. 配置存储服务器storage
			1.复制样本storage配置文件 sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
			2. 在/home下创建在目录 fastdfs/storage,保存其数据和日志文件
			3. 编辑/etc/fdfs/storage.conf配置文件,修改如下内容:
					1. base_path=/home/xxx/astdfs/storage
					2. store_path0=/home/xxx/fastdfs/storage
					3. tracker_server=自己的ip地址:22122
	
	5. 配置客户端文件
			1. 复制样本client配置文件 sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
			2. 编辑/etc/fdfs/client.conf配置文件,修改如下内容:
					1. base_path=/home/python/fastdfs/tracker
					2. tracker_server=自己的ip地址:22122
	
	6. 启动服务器并测试
			1. 启动tracker --- sudo /etc/init.d/fdfs_trackerd start
			2. 启动storage --- sudo /etc/init.d/fdfs_storaged start
			3. 上传文件测试 fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件,如返回
				group1/M00/00/00/wKgrb18OqceAMiPXAAA98yvCs1I926.jpg,即为文件上传成功

三、配合nginx使用,安装三方工具 fastdfs-nginx-module

	说明:nginx在ubuntu系统上已经使用apt-get安装
	1. 查看nginx的版本信息以及现有配置信息 nginx -V
			configure arguments 后面内容即为现有配置信息
	2. 到nginx官网下载nginx压缩包
	3. 解压后进入到文件中 执行sudo ./configure  现有配置信息(复制configure arguments后面的内容即可)  --add-module=fastdfs-nginx-module-master解压后的目录的绝对路径/src
			注:上述编译过程中可能由于缺少相应的需要先安装依赖包报错,安装依赖包后再次编译即可
	4. 执行sudo ./make
	5. 把编译后的nginx文件(位于源码包中objs文件夹中)替换原有nginx执行文件(注意:需要备份原有的nginx执行文件)
			1. 备份 sudo cp /usr/sbin/nginx /usr/sbin/nginx.bak 
			2. 覆盖原有nginx文件 sudo cp ./objs/nginx /usr/sbin/nginx(服务器启动时无法成功,需要先停掉nginx服务 sudo /etc/init.d/nginx stop)
	6. 修改nginx的配置文件
			1. 在http部分中添加配置信息如下:
				server {
				            location ~/group[0-9]/ {
				                ngx_fastdfs_module;
				            }
	7. 拷贝fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf 到 /etc/fdfs/mod_fastdfs.conf
	8. 修改/etc/fdfs/mod_fastdfs.conf文件:
			1. connect_timeout=10
			2. tracker_server=自己的ip地址:22122
			3. url_have_group_name=true #路径是否携带组信息
			4. store_path0=/home/xxx/fastdfs/storage
	9. sudo cp 解压缩的fastdfs-master/conf目录中的http.conf  /etc/fdfs/http.conf
	10.sudo cp 解压缩的fastdfs-master目录中的mime.types /etc/fdfs/mime.types 
	11.重启nginx服务 sudo /etc/init.d/nginx restart,在网页中测试访问上传图片
			如:localhost/group1/M00/00/00/wKgrb18OqceAMiPXAAA98yvCs1I926.jpg

四、结合python使用

	1. 安装python 三方包py3Fdfs.py, 虚拟环境执行 pip3 install py3Fdfs
	2. 测试:
	3. `from fdfs_client.client import Fdfs_client, get_tracker_conf`
	
	4. `conf = get_tracker_conf(r'/etc/fdfs/client.conf')`
	5. `client = Fdfs_client(conf)`
	6. `res = client.upload_by_filename(xxx文件名)`
	7. `print(res)`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值