首页 > 编程知识 正文

nginx集群模式,nginx集群部署

时间:2023-05-05 20:24:55 阅读:236483 作者:1304

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 nginxlsof -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五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。