################## fastDFS + nginx 集群(未整合keepalived)安装说明 ##################
# 所需安装包:# libfastcommon-master.zip
# FastDFS_v5.05.tar.gz
# fastdfs-nginx-module_v1.16.tar.gz
# nginx-1.10.0.tar.gz
# ngx_cache_purge-2.3.tar.gz
# 用FTP工具上传到/usr/local/software/下
# 服务器分配:
# 2个tracker节点:192.168.18.120、 192.168.18.121
# 4个storage节点:192.168.18.122、192.168.18.123、192.168.18.124、192.168.18.125
# 其中tracker(192.168.18.120)对应两个storage(192.168.18.122、192.168.18.123)
# tracker(192.168.18.121)对应两个storage(192.168.18.124、192.168.18.125)
# 1、六台节点,安装依赖:gcc、gcc-c++
yum install make cmake gcc gcc-c++
# 2、六台节点,安装公共函数库:libfastcommon-master.zip
# 创建目录
mkdir -p /usr/local/fast
# 解压
unzip /usr/local/software/libfastcommon-master.zip -d /usr/local/fast/
# 编译、安装(/前面.不能少)
cd /usr/local/fast/libfastcommon-master/
./make.sh
./make.sh install
# 添加软连接(如果有,可以删除文件后,再加软连接)
mkdir -p /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
# 3、六台节点,安装:FastDFS_v5.05.tar.gz
# 解压
tar -zxvf /usr/local/software/FastDFS_v5.05.tar.gz -C /usr/local/fast/
# 编译、安装
cd /usr/local/fast/FastDFS/
./make.sh
./make.sh install
# 修改配置文件
vi /etc/init.d/fdfs_storaged
:%s+/usr/local/bin+/usr/bin # 表示将全部/usr/local/bin替换成/usr/bin
:wq
vi /etc/init.d/fdfs_trackerd
:%s+/usr/local/bin+/usr/bin # 表示将全部/usr/local/bin替换成/usr/bin
:wq
# 4、两个tracker节点,配置
cd /etc/fdfs/ && cp tracker.conf.sample tracker.conf
# 修改
vi tracker.conf
base_path=/fastdfs/tracker # 配置基本路径
# 创建对应目录
mkdir -p /fastdfs/tracker
# 先不启动,观察/fastdfs/tracker下包含什么
cd /fastdfs/tracker && ls -l
# 启动跟踪器
/etc/init.d/fdfs_trackerd start
# 启动后,/fastdfs/tracker下会多出两个目录:data、logs
# 5、四台storage节点,配置
cd /etc/fdfs/ && cp storage.conf.sample storage.conf
# 修改
vi /etc/fdfs/storage.conf
group_name=group1 #122、123为group1,124、125为group2
base_path=/fastdfs/storage #基本路径
store_path0=/fastdfs/storage #仓库路径
tracker_server=192.168.18.120:22122 #对应之前tracker的IP地址
tracker_server=192.168.18.121:22122 #对应之前tracker的IP地址
http_server=8888 #端口
# 创建storage.conf中base_path对应目录
mkdir -p /fastdfs/storage
# 先不启动,观察/fastdfs/storage下包含什么
cd /fastdfs/storage && ls -l
# 启动存储(前提两台tracker已经启动)
/etc/init.d/fdfs_storaged start
# 启动后,/fastdfs/storage会多出两个目录:data、logs
# 同时可在storage下观察集群信息
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
# 6、测试FastDFS集群
cd /etc/fdfs/ && cp client.conf.sample client.conf
# 有两个tracker_server
vi client.conf
base_path=/fastdfs/tracker
tracker_server=192.168.18.120:22122 #对应之前tracker的IP地址
tracker_server=192.168.18.121:22122 #对应之前tracker的IP地址
# 先启动两个tracker
/etc/init.d/fdfs_trackerd start
# 再启动四个storage
/etc/init.d/fdfs_storaged start
# 先观察四个storage节点(什么都没有)
cd /fastdfs/storage/data/00/00 && ls -l
# 再去任意tracker节点上传文件,这里以/usr/local/software/FastDFS_v5.05.tar.gz为例
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/FastDFS_v5.05.tar.gz
# 上传完,会返回一段字符串(你的可能不一样)
# group1/M00/00/00/wKgShlq_xnaAaVV3AAVFOL7FJU4.tar.gz
# 再观察四个storage节点(多了文件:wKgShlq_xnaAaVV3AAVFOL7FJU4.tar.gz)
cd /fastdfs/storage/data/00/00 && ls -l
# 至此FastDFS集群配置ok
# 7、四个storage节点整合nginx
# 安装nginx前,检查依赖
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
# 解压fastdfs-nginx-module
tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
# 修改配置
vi /usr/local/fast/fastdfs-nginx-module/src/config
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" #将CORE_INCS中local去掉
# 解压nginx
tar -zxvf /usr/local/software/nginx-1.10.0.tar.gz -C /usr/local/
# 安装
cd /usr/local/nginx-1.10.0/
# 增加add-module模块,注意路径为上面解压的路径
./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
make && make install
# 修改配置
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
vi /etc/fdfs/mod_fastdfs.conf
connect_timeout=10 #连接超时时间
tracker_server=192.168.18.133:22122 #跟踪服务器IP、端口
url_have_group_name=true #URL分组
store_path0=/fastdfs/storage #仓库路径
# 复制配置文件
cd /usr/local/fast/FastDFS/conf/ && cp http.conf mime.types /etc/fdfs/
# 添加软连接
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
# 修改配置
vi /usr/local/nginx/conf/nginx.conf
listen 8888; #36行,80改成8888
location ~/group([0-9])/M00 { #43行,/改成~/group([0-9])/M00
ngx_fastdfs_module; #44行,注释其他,添加,分号一定有
# 8、测试四个storage节点nginx负载均衡
# 启动2个跟踪(192.168.18.120、192.168.18.121)
/etc/init.d/fdfs_trackerd start
# 启动4个存储(192.168.18.122、192.168.18.123、192.168.18.124、192.168.18.125)
/etc/init.d/fdfs_storaged start
# 启动4个nginx(192.168.18.122、192.168.18.123、192.168.18.124、192.168.18.125)
/usr/local/nginx/sbin/nginx
# 任意1个跟踪(192.168.18.120、192.168.18.121),上传文件,这里以/usr/local/software/1111.gif为例
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/1111.gif
# 返回:group1/M00/00/00/wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 查看文件(192.168.18.122~125),必定有一组节点中存有上述文件
cd /fastdfs/storage/data/00/00 && ls -l
# 有wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 打开浏览器,防火墙要关闭(service iptables stop),
# 输入:http://192.168.18.120:8888/group1/M00/00/00/wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 可以看见之前的1111.gif
# 表示nginx负载均衡配置成功
# 9、两个tracker节点整合nginx
# 安装nginx前,检查依赖
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
# 解压ngx_cache_purge
tar -zxvf /usr/local/software/ngx_cache_purge-2.3.tar.gz -C /usr/local/fast/
# 安装nginx
tar -zxvf /usr/local/software/nginx-1.10.0.tar.gz -C /usr/local/
cd /usr/local/nginx-1.10.0/
# 增加add-module模块,注意路径为上面解压的路径
./configure --add-module=/usr/local/fast/ngx_cache_purge-2.3
make && make install
# 修改配置
vi /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream fastdfs_tracker {
server 192.168.18.120:8000 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.18.121:8000 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
location /fastdfs {
root html;
proxy_pass http://fastdfs_tracker/;
proxy_set_header Host $http_host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 300m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
access_log logs/access.log main;
}
}
# 增加涉及的文件夹
mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp
# 8、测试 fastDFS + nginx 集群配置
# 2个tracker节点,启动跟踪和nginx
/etc/init.d/fdfs_trackerd start
/usr/local/nginx/sbin/nginx
# 4个storage节点,启动存储和nginx
/etc/init.d/fdfs_storaged start
/usr/local/nginx/sbin/nginx
# 任意1个tracker节点,上传文件,这里以/usr/local/software/1111.gif 为例
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/1111.gif
# 返回:group1/M00/00/00/wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 4个storage节点,查看文件,必定有一组节点中存有上述文件
cd /fastdfs/storage/data/00/00 && ls -l
# 有wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 打开浏览器,虚拟机防火墙最好关闭(service iptables stop),
# 输入:http://192.168.18.120:8888/group1/M00/00/00/wKgShlq___6AQ3TaAARVFp2JjcI963.gif
# 可以看见之前的1111.gif
# 表示 FastDFS+nginx 集群配置成功
# 新菜,若有不对,还望见谅!
# 觉得好,你就点赞、转发吧!谢谢