这段时间在做分布式存储工作,使用了fastdfs源码。写下安装配置步奏,防止遗忘。
fastdfs工作原理:
一、原料
1.FastDFS_v5.05.tar.gz
2.fastdfs-nginx-module_v1.16.tar.gz
3.nginx-1.8.0.tar.gz
4.pcre-8.36.tar.gz
5.zlib-1.2.8.tar.gz
6.libfastcommon
将这些文件放到/usr/local/src下,这里我是搭建一个tracker,两个storage(分别为两个分组),一个client。
IP分别为:
tracker:192.168.3.88
storage1:192.168.3.77 —–group1
storage2:192.168.3.34 —–group2
二、FastDfs安装配置步骤
1.libfastcommon安装
cd libfastcommon
./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/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
2.安装FastDfs
tar -zxvf V5.05.tar.gz
cd /usr/local/fastdfs-5.05/
./make.sh
./make.sh install
如果报错,请安装相关依赖库。
安装结束后在/usr/bin/下可以看见fastdfs的执行文件,在/etc/fdfs/下可以看见配置文件。可以手动添加一个目录作为文件和日志的目录,我这里用的是/home/fastdfs/
更改配置文件:
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
cp storage.conf.sample storage.conf
cp client.conf.sample client.conf
修改tracker配置文件:
bind_addr=192.168.3.88
port=22122
http.server_port=8080
两台storage配置差不多,IP不同,分组不同
group_name=group1(注:group_name=group2)
bind_addr=192.168.3.77(注:192.168.3.34)
port=23000
base_path=/home/fastdfs
store_path0=/home/fastdfs
tracker_server=192.168.3.88:22122
http.server_port=8888
3.客户端安装
客户端可以重新用一台PC,也可以用tracker作为客户端测试,只需要修改client.conf即可。
client.conf配置:
base_path=/home/fastdfs
tracker_server=192.168.3.88:22122
4.启动、测试
tracker启动:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
两台storage分别启动:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
客户端测试:
我这里是用的group2
上传:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/src/tt.txt
下载:
/usr/bin/fdfs_download_file /etc/fdfs/client.conf group2/M00/00/00/wKgDIlXda6eAbxZgAAAS9GXxj18893.txt
文件测试成功!说明fastdfs已经可以跑起来了。
三、nginx安装搭建
为每一台storage搭建一个nginx服务,讲storage挂载到nginx上去,进行文件的访问。
1.安装nginx fastdfs模块
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/src/
修改配置文件:
vi config
将:CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
改成:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
不然nginx编译的时候会报错
复制配置文件:
cp mod_fastdfs.conf /etc/fdfs
并且修改:
group_name=group1(group2)
tracker_server=192.168.3.88:22122
store_path0=/home/fastdfs
base_path=/home/fastdfs
url_have_group_name = true #这一条意思是url是否带group2
配置文件设置软链接:
ln -s /usrdata/fastdfs/data /usrdata/fastdfs/data/M00 (配置文件中stoage存放数据的路径)
2.pcre安装
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make
make install
ln -s /usr/local/lib/libpcre.so.1 /lib64/
3.zlib安装
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install
4.nginx安装
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src
make
make install
安装完成之后修改nginx配置文件
cd /usr/local/nginx/conf
vi nginx.conf
在server中增加
location /group1/M00{
root /home/fastdfs/data;
ngx_fastdfs_module;
}
OR:
location /group2/M00{
root /home/fastdfs/data;
ngx_fastdfs_module;
}
将以下两个文件复制到/etc/fdfs/,重要!
cp /usr/local/src/fastdfs-1.8.0/conf/http.conf /etc/fdfs/
cp /usr/local/src/fastdfs-1.8.0/conf/mime.types /etc/fdfs/
启动nginx:
/usr/local/nginx/sbin/nginx
安装完成。
5.测试