**
**
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文 件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。
Tracker Server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些 策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务 器。
Storage Server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上, Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。
一、安装fastdfs依赖包
解压缩libfastcommon-master.zip 进入到libfastcommon-master的目录中 执行 ./make.sh
执行 sudo ./make.sh install
二、安装fastdfs
解压缩fastdfs-master.zip 进入到 fastdfs-master目录中 执行 ./make.sh 执行 sudo
./make.sh install
三、配置跟踪服务器Tracker
把/etc/fdfs/的tracker.conf.sample文件复制一份为tracker.conf sudo cp
/etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 1
在/home/python/目录中创建目录 fastdfs/tracker mkdir –p
/home/python/fastdfs/tracker 1 编辑/etc/fdfs/tracker.conf配置文件 sudo vim
/etc/fdfs/tracker.conf修改 base_path=/home/python/fastdfs/tracker
四、配置跟踪服务器Storage
把/etc/fdfs/的storage.conf.sample文件复制一份为storage.conf sudo cp
/etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 1
在/home/python/fastdfs/ 目录中创建目录 storage mkdir –p
/home/python/fastdfs/storage 1 编辑/etc/fdfs/storage.conf配置文件 sudo vim
/etc/fdfs/storage.conf
修改内容:
base_path=/home/python/fastdfs/storage
store_path0=/home/python/fastdfs/storage
tracker_server=自己ubuntu虚拟机的ip地址:22122
五、启动tracker和storage两个服务
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
可以用ps -aux | grep fdfs命令查看后台进程,看这两个进程是否开启,若无法启动可重启虚拟机或者更改网络模式,开启成功
六、配置client客户端
把/etc/fdfs/的client.conf.sample文件复制一份为client.conf sudo cp
/etc/fdfs/client.conf.sample /etc/fdfs/client.conf
编辑/etc/fdfs/client.conf配置文件 sudo vim /etc/fdfs/client.conf
修改内容:
base_path=/home/python/fastdfs/tracker
tracker_server=自己ubuntu虚拟机的ip地址:22122
七、Nginx + fastdfs-nginx-module安装
一、安装nginx时需要先安装依赖包,不然在后面的安装过程可能会报错,首先查看是否安装依赖包
dpkg -l | grep zlib(下载: http://www.zlib.net/ ) zlib-1.2.8.tar.gz dpkg
-l | grep pcre (下载: http://www.pcre.org/ ) pcre-8.21.tar.gz dpkg -l | grep openssl ( 下载: http://www.openssl.org/ ) openssl-1.0.1.tar.gz
终端安装依赖包
sudo apt-get install zlib1g-dev
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
二、安装Nginx 和 fastdfs-nginx-module
把 fastdfs-nginx-module-master.zip 拷贝到 /usr/local 目录下解压
sudo cp ./fastdfs-nginx-module-master.zip /usr/local sudo unzip
fastdfs-nginx-module-master.zip
在 /usr/local 下新建一个nginx目录,把 nginx-1.8.1.tar.gz拷贝到 /usr/local/nginx 目录下解压
sudo mkdir -p /usr/local/nginx
sudo cp ./nginx-1.8.1.tar.gz /usr/local/nginx
sudo tar -zxvf nginx-1.8.1.tar.gz
进入nginx-1.8.1的目录执行以下命令
sudo ./configure --prefix=/usr/local/nginx/
–add-module=…/…/fastdfs-nginx-module-master/src sudo ./make 或者 sudo make sudo ./make install 或者 sudo make install
注:若在执行sudo ./make 或者 sudo make时报错,就将对应的makefile文件夹中(在 /nginx/nginx-1.8.1/objs) 找到 -Werrori(在第二行) 并去掉 在重新make即可
把 fastdfs-nginx-module-master解压后的目录中src下的 mod_fastdfs.conf 拷贝一份到 /etc/fdfs 中
sudo cp /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf
/etc/fdfs/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
把解压缩的 fastdfs-master/conf 目录中的http.conf 和 mime.types 各拷贝一份到/etc/fdfs 中
sudo cp /home/jahan/Desktop/fastdfs-master/conf/http.conf
/etc/fdfs/http.confsudo cp /home/jahan/Desktop/fastdfs-master/conf/mime.types
/etc/fdfs/mime.types
修改 /usr/local/nginx/conf 下 nginx.conf 中的配置
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;
} }
进入到 /usr/local/nginx/sbin 启动 nginx
shell sudo ./nginx 重启命令:sudo ./nginx -s reload
七、测试是否安装成功
三者都要启动
启动tracker和storage两个服务
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
shell sudo ./nginx 重启命令:sudo ./nginx -s reload
上传文件测试:
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件路径
如果返回类似
group1/M00/00/00/wKiZg1zdFK2AHczeAADR6vRXv_Q539.png 的文件id则说明文件上传成功,
此为组和id号
并在浏览器中通过 127.0.0.1:8888/id号 号可以访问到刚刚上传的图片