FastDFS+nginx+keepalived集群搭建
安装环境
nginx-1.6.2
libfastcommon-master.zip
FastDFS_v5.05.tar.gz(http://sourceforge.net/projects/fastdfs/files/)
fastdfs-nginx-module_v1.16.tar.gz
ngx_cache_purge-2.3.tar.gz(用于清除指定url的缓存)
keepalived
VM虚拟机redhat6.5-x64:192.168.1.201、192.168.1.202、192.168.1.203、192.168.1.204、
192.168.1.201、192.168.1.202、192.168.1.203、192.168.1.204、
Xshell4
部署方案

安装步骤
步骤一:203、204、205、206、207、208安装FastDFS
参考:https://www.cnblogs.com/cac2020/p/9534967.html
步骤二:配置跟踪器(192.168.1.203 、192.168.1.204 节点)
mkdir -p /fastdfs/tracker&& cp /etc/fdfs/tracker.conf.sample tracker.conf && vim /etc/fdfs/tracker.conf
修改内容:
base_path=/fastdfs/tracker
#关键点:轮询分配到各个group里
store_lookup=
启动:
/etc/init.d/fdfs_trackerd start
步骤三:配置FastDFS存储(192.168.1.205-208)
205、206作为group1 , 207、208作为group2
mkdir -p /fastdfs/storage && cp /etc/fdfs/storage.conf.sample storage.conf && vim /etc/fdfs/storage.conf
修改内容:
disabled=false
group_name=group1 #组名,第一组(、)为 group1 第二组(、)为 group2
port= #storage 端口号,同组的端口号必须相同
base_path=/fastdfs/storage
store_path_count= #存储路径个数 需要和 store_path 个数匹配
store_path0=/fastdfs/storage #设置存储路径
tracker_server=192.168.1.203: #tracker 服务器的 ip 和端口
tracker_server=192.168.1.204: #多个 tracker 直接添加多条记录
http.server_port= #设置 http 端口号
启动:
/etc/init.d/fdfs_storaged start
到此为止我们的 FastDFS 集群环境已经搭建完成!!!!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
步骤四:4个存储节点(205 206 207 208)整合Nginx
.安装整合包fastdfs-nginx-module_v1..tar.gz
tar -zxvf /usr/local/software/fastdfs-nginx-module_v1..tar.gz -C /usr/local/fast/
vim /usr/local/fast/fastdfs-nginx-module/src/config
修改内容:去掉第四行中的 local 文件层次 .安装Nginx 加载fastdfs-nginx-module模块
tar -zxvf /usr/local/software/nginx-1.6..tar.gz -C /usr/local
cd /usr/local/nginx-1.6. && ./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/ && vim /etc/fdfs/mod_fastdfs.conf
修改内容:
注意:第一组(、)和第二组(、) 节点修改内容,只有组名不同
connect_timeout=
tracker_server=192.168.1.203:
tracker_server=192.168.1.204:
storage_server_port=
url_have_group_name = true
store_path0=/fastdfs/storage
group_name=group1 #第一组为 group1 第二组为 group2
group_count = #追加以下内容
[group1]
group_name=group1
storage_server_port=
store_path_count=
store_path0=/fastdfs/storage [group2]
group_name=group2
storage_server_port=
store_path_count=
store_path0=/fastdfs/storage
.复制配置文件
cd /usr/local/fast/FastDFS/conf/ && cp http.conf mime.types /etc/fdfs/
.创建软连接,在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录。
命令: ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
.修改 Nginx 配置文件4个节点
命令:vim usr/local/nginx.conf
修改内容:
listen ;
server_name localhost;
location ~/group([-])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
启动4个节点Nginx: /usr/local/nginx/sbin/nginx
步骤五:在2个跟踪器节点上安装nginx为4个存储节点提供负载均衡
.安装ngx_cache_purge-2.3.tar.gz(清除指定url的缓存)
tar -zxvf /usr/local/software/ngx_cache_purge-2.3.tar.gz –C /usr/local/fast/ .安装Nginx 加入 ngx_cache_purge (加入清除缓存模块)
tar -zxvf /usr/local/software/nginx-1.6..tar.gz -C /usr/local
cd /usr/local/nginx-1.6. && ./configure --add-module=/usr/local/fast/ngx_cache_purge-2.3/src/
重新编译命令: make && make install .修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
修改内容:
events {
worker_connections ;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout ;
#设置缓存
server_names_hash_bucket_size ;
client_header_buffer_size 32k;
large_client_header_buffers 32k;
client_max_body_size 300m; proxy_redirect off;
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_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
proxy_buffer_size 16k;
proxy_buffers 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
proxy_cache_path /fastdfs/cache/nginx/proxy_cache levels=:
keys_zone=http-chche:200m max_size=1g inactive=30d;
proxy_temp_path /fastdfs/cache/nginx/proxy_cache/tmp; # weight 权重 max_fails 失败重试次数 fail_timeout 连接失败超时时间
#设置 group1 的服务器
upstream fdfs_group1 {
server 192.168.1.205: weight= max_fails= fail_timeout=30s;
server 192.168.1.206: weight= max_fails= fail_timeout=30s;
} #设置 group2 的服务器
upstream fdfs_group2 {
server 192.168.1.207: weight= max_fails= fail_timeout=30s;
server 192.168.1.208: weight= max_fails= fail_timeout=30s;
} server {
listen ;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main; #设置 group 的负载均衡参数
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
} location /group2/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group2;
expires 30d;
} #设置清除缓存的访问权限
location ~/purge(/.*) {
allow 127.0.0.1;
allow 192.168.1.0/;
deny all;
proxy_cache_purge http-cache $$is_args$args;
}
#error_page /.html;
# redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root html;
}
} .按以上nginx 配置文件的要求,创建对应的缓存目录2个跟踪器节点都需要:
mkdir -p /fastdfs/cache/nginx/proxy_cache
mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp
启动ngnix:/usr/local/nginx/sbin/nginx
步骤六:201、202节点安装keepalived+nginx,对203、204提供负载均衡并对外外提供统一访问IP
.安装nginx
修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
修改内容:
upstream fastdfs_tracker {
server 192.168.1.203: weight= max_fails= fail_timeout=30s;
server 192.168.1.204: weight= max_fails= fail_timeout=30s;
}
server {
listen ;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
} ## FastDFS Proxy 代理路径设置为 /fastdfs
location /fastdfs {
root html;
index index.html index.htm;
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;
}
} .安装keepalived
修改keepalived配置
参考:https://www.cnblogs.com/cac2020/p/9528106.html
最后注意:千万不要使用 kill - 命令强杀 FastDFS 进程,否则可能会导致 binlog 数据丢失
关闭集群步骤:
、 两台一级负载节点
关闭 keepalived 命令:service keepalived stop
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop 、 两台二级负载节点,跟踪器节点
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop
关闭 trackerd 跟踪器命令:/etc/init.d/fdfs_trackerd stop 、 四台三级负载节点,存储节点
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop
关闭 storage 存储器命令: /etc/init.d/fdfs_storaged stop
注意:千万不要使用 kill - 命令强杀 FastDFS 进程,否则可能会导致 binlog 数据丢失
参考手册:keepalived+nginx+fastdfs集群安装手册.pdf
FastDFS+nginx+keepalived集群搭建的更多相关文章
- FastDFS+Nginx+fastdfs-nginx-module集群搭建
一.实验环境说明 操作系统: Centos 6.6 x64 FastDFS 相关版本: fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1 ...
- Centos7+nginx+keepalived集群及双主架构案例
目录简介 一.简介 二.部署nginx+keepalived 集群 三.部署nginx+keepalived双主架构 四.高可用之调用辅助脚本进行资源监控,并根据监控的结果状态实现动态调整 一.简介 ...
- tomcat+nginx+redis集群搭建并解决session共享问题。
1 集群搭建 https://www.cnblogs.com/yjq520/p/7685941.html 2 session共享 https://blog.csdn.net/tuesdayma/art ...
- Nginx+Keepalived 集群方案
1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,kee ...
- 构建企业级Nginx+Keepalived集群架构
随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架 ...
- 企业级Nginx+Keepalived集群实战(双主架构)
随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx,Nginx高性能.稳定性成为IT人士青睐的HTTP和反向代理服务器.Nginx负载均衡一般位于整个网站架构的最前端或者中间层,如 ...
- FastDFS教程IV-文件服务器集群搭建
1.简介 本文主要介绍FastDFS文件服务器的集群搭建,在阅读本文之前,您需具备FastDFS文件服务器单节点安装,扩容,迁移等方面的知识.同时,您还需了解Keepalived,nginx方 ...
- 多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建
多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建 一.服务器详情 192.168.122.111 pm01.jq.com pm01 #(pup ...
- fastdfs集群版搭建(一)- storage集群搭建与统一入口访问
前言 接着上篇博客:详细的最新版fastdfs单机版搭建,今天来讲讲fastdfs的集群搭建,限于篇幅,今天先搭建stoarge集群,并实现统一的http访问方式: 没看我上篇博客的小伙伴,最好先去瞅 ...
随机推荐
- 【CF603E】Pastoral Oddities cdq分治+并查集
[CF603E]Pastoral Oddities 题意:有n个点,依次加入m条边权为$l_i$的无向边,每次加入后询问:当前图是否存在一个生成子图,满足所有点的度数都是奇数.如果有,输出这个生成子图 ...
- Unity3D笔记 愤怒的小鸟<二> 实现Play界面
创建Play界面.能个把各个图片组合成一个场景,场景组成后背景能够不停的滚动,当鼠标单击时显示图片手型鼠标 一.GUI Texture 1.创建背景.地面.树木.草 ,这里注意Z轴的排序,一层一层则第 ...
- centos7搭建docker私有仓库
1.环境: [root@docker02 anchors]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@do ...
- wireshark抓取OMCI报文
1.安装文件: 1.1 BinDecHex.lua 1.2 omci.lua 2.如上两个文件copy至wireshark安装目录,如C:\Program Files (x86)\Wireshark ...
- Shell脚本导入外部脚本内容
vim subscript.sh #!/bin/bash tool="ApacheSpark" vim main.sh #!/bin/bash source /home/wx/su ...
- Zabbix显示乱码解决办法
Zabbix在web页面会显示乱码,如下图所示 在windows下面文件夹C:\Windows\Fonts找一个简体字文件例如simkai.ttf 复制到zabbix server的文件夹/usr/s ...
- HOJ-1005 Fast Food(动态规划)
Fast Food My Tags (Edit) Source : Unknown Time limit : 3 sec Memory limit : 32 M Submitted : 3777, A ...
- HDU-1003 Max Sum(动态规划,最长字段和问题)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- Scala学习笔记(1)-基本类型归纳
1.小试牛刀 使用Scala自带的REPL shell(Read Evaluate Print Loop)学习和尝试Scala语言库,创建的变量在会话期间都是有效的. Ctrl+D可退出REPL sh ...
- Linux:获取当前进程的执行文件的绝对路径
摘要:本文介绍Linux的应用程序和内核模块获取当前进程执行文件绝对路径的实现方法. 注意:使用此方法时,如果执行一个指向执行文件的链接文件,则获得的不是链接文件的绝对路径,而是执行文件的绝对路径. ...