FastDFS部署

环境:

CentOS 7

FastDFS 5.05

Nginx 1.10

fastdfs-nginx-module_v1.16

libfastcommon-1.0.7

libevent-2.0.21-stable

pcre-8.35.tar.gz

单机启动一个Tracker和三个Storage

 安装支持模块:

yum install openssl openssl-devel

安装libevent-2.0.21-stable

tar zxvf libevent-2.0.21-stable.tar.gz
./configure
make && make install

安装libfastcommon-1.0.7.tar.gz

tar zxvf libfastcommon-1.0.7.tar.gz
./make.sh
./make.sh install

安装FastDFS

tar zxvf FastDFS_v5.05.tar.gz
./make.sh
./make.sh install

配置文件目录:/etc/fdfs/

配置tracker和storage

tracker:

vim /etc/fdfs/tracker.conf

base_path=/data/local/fdfs_data/tracker #确保目录存在

storage:

vim /etc/fdfs/storage.conf

group_name=group1
http.server_port=8123
base_path=/data/local/fdfs_data/storage #确保目录存在

store_path0=/data/local/fdfs_data/storage/images/data #确保目录存在,存放图片目录

tracker_server=192.168.153.10:22122  #tracker服务地址,这里就是本机地址

由于要启动三个storage,所以复制storage.conf二份,三份配置文件分别为:storage.conf、storage1.conf、storage2.conf

修改storage1.conf和storage2.conf:

storage1.conf:

group_name=group2

http.server_port=8123
base_path
=/data/local/fdfs_data/storage1 #确保目录存在 store_path0=/data/local/fdfs_data/storage1/images/data #确保目录存在,存放图片目录 tracker_server=192.168.153.10:22122 #tracker服务地址,这里就是本机地址

storage2.conf:

group_name=group2
http.server_port=8123
base_path=/data/local/fdfs_data/storage2 #确保目录存在

store_path0=/data/local/fdfs_data/storage2/images/data #确保目录存在,存放图片目录

tracker_server
=192.168.153.10:22122 #tracker服务地址,这里就是本机地址

启动tracker:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

启动三个storage:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage1.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage2.conf

初次启动storage时会稍慢。

 

配置client

vim /etc/fdfs/client.conf:

base_path=/data/local/fdfs_data/client #确保目录存在

tracker_server=192.168.153.10:22122
http.server_port=8123

拷贝mime.types、http.conf 

cp FastDFS/conf/mime.types /etc/fdfs/ 
cp FastDFS/conf/http.conf /etc/fdfs/ 

 修改fastdfs-nginx-module/src/config,去掉local:

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

否在在安装nginx时会报错:

 致命错误:fdfs_define.h:没有那个文件或目录
 #include "fdfs_define.h"

安装nginx:

tar zxvf nginx-1.10.3.tar.gz
./configure --prefix=/data/local/nginx --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --add-module=/data/package/fastdfs-nginx-module/src/ --with-pcre=/data/package/pcre-8.35
make 
make install

 拷贝模块文件:

cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf:

将
tracker_server=tracker:22122
改为:
tracker_server=192.168.0.9:22122  #tracker的实际地址

nginx.conf

listen 8123


location /group1/M00 {
    root /data/local/fdfs_data/storage/images;
    ngx_fastdfs_module;
}

 

启动nginx...

设置伪集群:

vim mod_fastdfs.conf:

base_path=/data/local/fdfs_data/fdfs-nginx-module

tracker_server=192.168.153.9:22122

group_name=group1/group2/group3

store_path0=/data/local/fdfs_data/storage/images/data

group_count = 3

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/local/fdfs_data/storage/images


[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/data/local/fdfs_data/storage1/images

[group3]
group_name=group3
storage_server_port=23002
store_path_count=1
store_path0=/data/local/fdfs_data/storage3/images

 

 重启服务:

/usr/bin/fdfs_trackered /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage1.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage2.conf restart

/data/local/nginx/sbin/nginx -s reload

上传图片测试:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /data/package/111.jpg

通过结果:

This is FastDFS client test program v5.05

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2017-04-21 17:58:52] DEBUG - base_path=/data/local/fdfs_data/client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
    server 1. group_name=, ip_addr=192.168.153.9, port=23000

group_name=group1, ip_addr=192.168.153.9, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKiZCVj519yAMVOkAAA_xFjVVbc000.jpg
source ip address: 192.168.153.9
file timestamp=2017-04-21 17:58:52
file size=16324
file crc32=1490376119
example file url: http://192.168.153.9:8123/group1/M00/00/00/wKiZCVj519yAMVOkAAA_xFjVVbc000.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKiZCVj519yAMVOkAAA_xFjVVbc000_big.jpg
source ip address: 192.168.153.9
file timestamp=2017-04-21 17:58:52
file size=16324
file crc32=1490376119
example file url: http://192.168.153.9:8123/group1/M00/00/00/wKiZCVj519yAMVOkAAA_xFjVVbc000_big.jpg

其中 'http://192.168.153.9:8123/group1/M00/00/00/wKiZCVj519yAMVOkAAA_xFjVVbc000_big.jpg'就是改图片通过nginx的访问地址。

 

PS:同一个group中的storage之间是平等的,相互备份。

 

查看FastDFS集群状态:

 /usr/bin/fdfs_monitor /etc/fdfs/client.conf

删除storage节点,重新加入:

/usr/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.153.9

删除一个组:

/usr/bin/fdfs_monitor /etc/fdfs/client.conf delete group2

删除完之后,重启tracker和storage

 

posted @ 2017-04-21 11:08  ahaii  阅读(975)  评论(0编辑  收藏  举报