nginx集群

nginx集群

传统web访问模型:用户发起请求-》服务器接收请求-》服务器处理请求-》服务器响应请求
缺点:单点故障、单台服务器资源有限、单台服务器处理耗时长

解决办法

方案一:部署一台备用服务器,宕机时直接切换
服务器利用率低,成本高,切换不及时,服务器压力依然大
方案二:部署多台服务器,根据DNS的轮询解析机制去实现用户分发
用户处理速度得到提高,但一台服务器故障,就有一部分用户访问不了网站

并行处理方案


集群模式:多态机器组成服务器,单台服务器出现故障时不向他分发内容即可,使用分发器控制。

VIP:虚ip,有虚ip的主机负载分发器的作用

集群原理

nginx在集群中属于分发器,有基于应用层分发器和基于传输层分发器两种
原理:虚拟主机+反向代理+upstream分发器模块组成
虚拟主机:接受响应和请求
反向代理:带用户去数据服务器拿数据
upstream:告诉nginx去哪个数据服务器拿数据

集群实现

一台主机做分发器,两台主机做数据处理
分发器:192.168.10.129
接收器:
192.168.10.41
192.168.10.42

虚拟主机接受用户请求-》反向代理-》upstream分发器-》数据服务器-》处理请求-》返回相应nginx-》nginx响应请求给用户

接受服务器配置

两个接受服务器上网站资源一样即可
能访问网站即可

分发器配置

upstream web{
	server 192.168.10.41;
	server 192.168.10.42;
}
server {
	listen 80;
	server_name www.bac.com;
	location / {
		proxy_pass http://web;
	}
}

分发服务器使用proxy_pass将浏览器请求转发达分发器中,upstream默认平均分配请求给服务器去处理数据

keepalive高可用集群

keepalive是监控加自愈软件。检测服务器状态,宕机时,尝试重启服务,失败时,剔除服务器

分发器配置

构建一个高可用集群,解决备份分发器闲置问题

1.安装keepalive

vim keepalived_install.sh  
sh keepalived_install

keepalived_install脚本内容

2.配置nginx.conf

3,配置keepalive.conf

vim /etc/keepalived/keepalived.conf

主服务器


主服务器使用state MASTER

备份服务器


备份服务器使用state BACKUP

执行脚本文件

检查nginx服务器是否启动,没有启动则使其启动,若启动不了,则关闭keepalived程序

4.验证

lsof -i :80     
killall nginx
lsof -i :80  


杀掉nginx后,keepalived重新启动nginx,pid会改变

抓包

tcpdump -nn -vvv -i ens33 vrrp

224.0.0.18 为组播地址,检查网络中数据服务器是否存活

查看主服务器ip

ip add show

主服务器有虚拟ip 192.168.10.213/24

而备份服务器则没有

测试keepalived是否好用
ip add show  查看虚地址 192.168.10.213/24在主分发器上
watch -n1 killall nginx  使主分发器发生故障
tailf  /var/log/message  查看备份分发器是否拿到虚ip


我们可以看到备份服务器拿到虚拟ip
ip add show

同时,如果我再次启动主分发器,虚ip又会重新回到主分发器上
systemctl start keepalived

设置数据服务器备份


在三秒内失败2次就认定该数据服务器不可访问,自动转到其他数据服务器

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值