FastDFS+Ngnix

什么是FastDFS
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务
Tracker server 进行文件的调度
Storage server 完成文件的上传和下载
特点:同样内容的文件 只储存一次,返回同一个Hash(哈希)值
FastDFS+Ngnix_第1张图片

上传流程

FastDFS+Ngnix_第2张图片

下载流程

FastDFS+Ngnix_第3张图片

安装

环境:centos

FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc

安装相关依赖

yum install -y gcc gcc-c++

若安装了桌面图形界面,就不需要安装;FastDFS依赖libevent

yum -y install libevent

FastDFS 依赖包 Github地址

unzip libfastcommon-master.zip 

进入目录,执行编译

unzip libfastcommon-master.zip 
./make.sh

安装

./make.sh install

libfastcommon安装好后会在/usr/lib64 目录下生成 libfastcommon.so 库文件

cd /usr/lib64/
ls | grep libfastcommon.so #查看是否含有

注意:由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
有的话,不需要此步骤

cp libfastcommon.so /usr/lib

安装 FastDFS

FastDFS 开源Github

yum install unzip, zip
unzip fastdfs-master.zip 

编译

cd fastdfs-master
./make.sh

安装

./make.sh install

配置跟踪服务器 tracker

备份样例配置文件

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

自定义一个保存数据和日志的文件夹
地址为: /home/mikowoo/fastdfs/tracker

cd /home/mikowoo
mkdir fastdfs
cd fastdfs
mkdir tracker
vim /etc/fdfs/tracker.conf

修改配置文件,将数据与日至保存到 自定义文件夹中

base_path=/home/mikowoo/fastdfs/tracker

配置存储服务器 storage

备份存储样例配置

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

自定义存储路径 /home/mikowoo/fastdfs/storage
修改配置文件内容

vim 
base_path=/home/mikowoo/fastdfs/storage
store_path0=/home/mikowoo/fastdfs/storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
tracker_server=192.168.50.91:22122 # 本机IP 不能是 127.0.0.1
# 这个storage 是哪个 tracker 管理的对应 哪个IP 

启动两个服务器

service fdfs_trackerd start
service fdfs_storaged start

测试

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf

修改内容

base_path=/home/mikowoo/fastdfs/tracker
tracker_server=192.168.50.91:22122 # 本机IP 不能是 127.0.0.1

进入上传文件目录,上传文件

fdfs_upload_file /etc/fdfs/client.conf Spring.png

返回 group1/M00/00/00/wKgyW11WeLCAZIHrAABkZwGFfSA241.png 成功

Ubuntu 同样安装步骤

Ubuntu 启动遇到的异常
Failed to start fdfs_trackerd.service: Unit fdfs_trackerd.service not found
用如下命令启动

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

查看进程

ps aux | grep fdfs

centos 安装

Nginx

Nginx 可以理解为 Web 服务器
下载地址

FastDFS_nginx_module_master

Github下载

解压这两个文件

tar -zxvf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip

进入 Nginx 解压后文件夹

cd nginx-1.8.1

填写配置信息,安装地址 /usr/local/nginx/

./configure --prefix=/usr/local/nginx/ --add-module=/home/mikowoo/Downloads/fastdfs-nginx-module-master/src
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre= option
yum -y install pcre-devel
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib= option.
yum -y install zlib-devel

编译,当前目录地址 nginx_1.8.1

make

安装

shell install

配置文件

cp fastdfs-nginx-module-master/src/mod_fastdfs.conf  /etc/fdfs/mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf
network_timeout=10
tracker_server=192.168.50.91:22122
url_have_group_name = true
store_path0=/home/mikowoo/fastdfs/storage

进入 fastdfs_master(即FastDFS) 文件目录中

cp conf/http.conf /etc/fdfs/http.conf
cp conf/mime.types /etc/fdfs/mime.types
vim /usr/local/nginx/conf/nginx.conf

添加

user root;
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;
   }
} 

启动

/usr/local/nginx/sbin/nginx 
/usr/local/nginx/sbin/nginx -s stop # 停止
/usr/local/nginx/sbin/nginx -s reload # 重启

上传一张图

测试访问,是否显示图片

http://127.0.0.1:8888/group1/M00/00/00/wKgyW11aVEaAP_B0AABkZwGFfSA484.png

你可能感兴趣的:(python_Django)