fastdfs 集群安装部署

fastdfs 用了好几年了,但一直没写进博客,最近因项目要用到,所以整理了下安装部署的文档

一、部署相关

https://www.cnblogs.com/cnmenglang/p/6731209.html
环境:

192.168.2.44  主机  nginx+fastdfs(tracker+storage)+fastdfs+nginx+module
192.168.2.45  主机  nginx+fastdfs(tracker+storage)+fastdfs+nginx+module

架构

防止混乱而haproxy 安装配置另写一篇文章
1、安装依赖包:

yum install unzip zip gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel



2、下载以下四个安装包并解压到/home/目录:

公共函数库:libfastcommon-master.zip
下载地址:
https://codeload.github.com/happyfish100/libfastcommon/zip/master
主程序:fastdfs-5.10.tar.gz
下载地址:https://github.com/happyfish100/fastdfs
https://codeload.github.com/happyfish100/fastdfs/zip/master
NGINX与DFS链接模块: fastdfs-nginx-module_v1.16.tar.gz
https://github.com/happyfish100/fastdfs-nginx-module

Nginx 下载地址
http://nginx.org/download/nginx-1.12.2.tar.gz
3、libfastcommon包安装

unzip libfastcommon-master.zip
执行编译步骤:./make.sh
执行安装步骤:./make.sh install
libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
4、FastDFS 安装

unzip fastdfs-master.zip
cd fastdfs-master
./make.sh
./mae.sh install
cd /etc/fdfs/
ll -lh
对三个配置文件进行拷贝,后面有用
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf /
5、Tracker 安装 (两个主机都一样配置)

创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等:
mkdir -p /data/tracker
编辑上/etc/fdfs/tracker.conf 配置文件,打开文件后依次做以下修改: (里面的中文是注释,请不要复制)
vim /etc/fdfs/tracker.conf
````
disabled=false
设置tracker的端口号,通常采用22122这个默认端口
port=22122
设置tracker的数据文件和日志目录
base_path=/data/tracker
设置http端口号,初始值为8080
http.server_port=8080
````
为启动脚本创建软引用,因为fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
最后通过命令启动Tracker服务器:
service fdfs_trackerd start
通过netstat命令查看一下端口监听情况:
netstat -unltp|grep fdfs
服务运行的22122端口正常
6、Storage安装(因为两台服务器的存储路径一样,所以配置都一样)

创建Storage服务器的文件目录,注意同Tracker相比要多建一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:
mkdir /data/storage
mkdir /data/storage_data
接下来修改/etc/fdfs/storage.conf配置文件,打开文件后依次做以下修改:(里面的中文是注释,请不要复制)
````
port=23000
设置storage数据文件和日志目录
base_path=/data/storage
实际文件存储路径
store_path0=/data/storage_data
存储路径个数,需要和store_path个数匹配
store_path_count=1
tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功
tracker_server=192.168.2.44:22122
tracker_server=192.168.2.45:22122
设置 http 端口号
http.server_port=80
配置完成后同样要为Storage服务器的启动脚本设置软引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
接下来就可以启动Storage服务了:
service fdfs_storaged start
验证成功启动的方法:
netstat -unltp|grep fdfs
查看是否有23000,22122
````
7、自动生成目录

接下来还需要建立 M00 至存储目录的符号连接:
ln -s /data/torage_data/data /data/storage_data/data/M00
成功的话,/data/storage_data/data目录下生成好的文件夹,data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件夹。



至此我们就已经完成了fastdfs的全部配置
8、 nginx 安装和加模块 fastdfs-nginx-module提供了HTTP服务并且解决同步延迟问题(两个主机一样安装配置)

安装nginx模块依赖lib库
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
groupadd -f nginx
useradd -g nginx nginx
mkdir -p  /usr/local/nginx

tar xvf nginx-1.12.2.tar.gz  

全新安装nginx,从官网下载源码包:
./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/home/fastdfs-nginx-module-master/src
make && make install

(里面的中文是注释,请不要复制)

最后启动nginx:
/usr/local/nginx/sbin/nginx
浏览器也可以看到nginx的主页
配置nginx.conf文件,加入server{ }中
````
listen 80;
location ~/group1/M00 {
root /data/storage_data/data;
ngx_fastdfs_module;

}

````

去之前的源码包复制一些fastdfs配置文件到现在的配置文件


cp /opt/dfspackages/fastdfs-master/conf/http.conf /etc/fdfs/
cp /opt/dfspackages/fastdfs-master/conf/mime.types /etc/fdfs/
cp /opt/dfspackages/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

   
编辑mod_fastdfs.conf文件,vim /etc/fdfs/mod_fastdfs.conf:
````
保存日志目录
base_path=/tmp
tracker服务器的IP地址以及端口号
tracker_server=192.168.2.44:22122
tracker_server=192.168.2.45:22122
storage服务器的端口号
storage_server_port=23000
文件 url 中是否有 group 名
url_have_group_name = true
store_path0=/data/storage_data
设置组的个数,事实上这次只使用了group1
group_count = 1
设置了group_count = 1,接下来就需要在文件尾部追加这1个group setting:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/storage_data
编辑client.conf 文件,vi /etc/fdfs/client.conf:
base_path=/tmp
tracker_server=192.168.2.45:22122
tracker_server=192.168.2.44:22122
````
二、测试及结果

执行命令:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload 1.png
浏览器打开:
http://192.168.2.44/group1/M00/00/00/wKgCLFsYjN2AO6NtAAUvDIxVVIg839_big.png



2,换http://192.168.2.45/group1/M00/00/00/wKgCLFsYjN2AO6NtAAUvDIxVVIg839_big.png

看是否可以打开


猜你喜欢

转载自blog.csdn.net/saga_gallon/article/details/80648472