web高可用集群(nginx负载均衡+keepalived实现调度器HA)

web高可用集群(nginx负载均衡+keepalived实现调度器HA)

主机IP地址
代理服务器192.168.88.66
代理服务器192.168.88.38
Real server192.168.88.10
Real server192.168.88.20

配置俩台Real server

[root@web1 ~]# vim /etc/yum.repos.d/nginx.repo
[root@web1 ~]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[root@web1 ~]# yum install -y nginx
[root@web1 ~]# systemctl enable nginx --now
#设置成开机自启
#我这里是把nginx的网页根目录修改成了/html/www
[root@web1 ~]# echo "test">/html/www/index.html

配置俩台代理服务器使用nginx实现负载均衡

[root@web1 ~]# vim /etc/yum.repos.d/nginx.repo
[root@web1 ~]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[root@web1 ~]# yum install -y nginx
[root@web1 ~]# systemctl enable nginx --now
#设置成开机自启
#把默认的配置文件修改其他名,要不然配置的其他文件无法生效
[root@proxy ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
[root@proxy ~]# vim /etc/nginx/conf.d/www.conf 
upstream backend {server 192.168.88.10:80 weight=1 max_fails=3 fail_timeout=20s;server 192.168.88.20:80 weight=1 max_fails=3 fail_timeout=20s;}server {listen 80;server_name localhost;location / {proxy_pass http://backendproxy_set_header Host $host:$proxy_port;proxy_set_header X-Forwarded-For $remote_addr;
}
}
[root@proxy ~]# systemctl restart nginx

浏览器测试,访问俩台主机IP都可以

在这里插入图片描述在这里插入图片描述

配置俩台代理服务器使用keepalived实现HA调度

#主节点
[root@lvs1 ~]# yum -y install keepalived
[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id lvs1vrrp_iptables vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"interval 3
}
vrrp_instance VI_1 {state MASTERinterface ens37virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.88.88/24}track_script {check_nginx }
}
[root@lvs1 ~]# cat /etc/keepalived/check_nginx.sh
#!/bin/bash
curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]thensystemctl stop keepalived# else
fi
[root@lvs1 ~]#  chmod +x /etc/keepalived/check_nginx.sh
[root@proxy ~]# systemctl start keepalived
#从节点
[root@proxy ~]# yum install -y keepalived
[root@proxy ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id proxyvrrp_iptablesvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"interval 5
}
vrrp_instance VI_1 {state BACKUPinterface ens37virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.88.88/24}track_script {check_nginx }
}
[root@lvs1 ~]# cat /etc/keepalived/check_nginx.sh
#!/bin/bash
curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]thensystemctl stop keepalived# else
fi
[root@lvs1 ~]#  chmod +x /etc/keepalived/check_nginx.sh
[root@proxy ~]# systemctl start keepalived
#使用ip a查看
[root@lvs1 ~]# ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:48:b3:71 brd ff:ff:ff:ff:ff:ffinet 172.18.127.38/16 brd 172.18.255.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe48:b371/64 scope link valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:48:b3:7b brd ff:ff:ff:ff:ff:ffinet 192.168.88.38/24 brd 192.168.88.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet 192.168.88.88/24 scope global secondary ens37   #主节点显示valid_lft forever preferred_lft foreverinet6 fe80::dbb5:b534:a44a:a21/64 scope link noprefixroute valid_lft forever preferred_lft forever

浏览器测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过停止keepalived来测试VIP是否飘逸

#停止代理服务器1的nginx,顺便验证监控脚本
[root@lvs1 ~]# ip a
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:48:b3:7b brd ff:ff:ff:ff:ff:ffinet 192.168.88.38/24 brd 192.168.88.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet 192.168.88.88/24 scope global secondary ens37   #可以发现此时VIP地址在第一台代理服务器上valid_lft forever preferred_lft foreverinet6 fe80::dbb5:b534:a44a:a21/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@lvs1 ~]# systemctl status keepalived.service   #keepalived状态为启用
● keepalived.service - LVS and VRRP High Availability MonitorLoaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)Active: active (running) since 日 2024-03-17 01:59:36 CST; 9s ago[root@lvs1 ~]# systemctl stop nginx  #停止nginx,验证监控脚本
[root@lvs1 ~]# systemctl status keepalived.service   #keepalived服务关闭
● keepalived.service - LVS and VRRP High Availability MonitorLoaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)Active: inactive (dead)[root@lvs1 ~]# ip a  #VIP地址已转移
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:48:b3:7b brd ff:ff:ff:ff:ff:ffinet 192.168.88.38/24 brd 192.168.88.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::dbb5:b534:a44a:a21/64 scope link noprefixroute valid_lft forever preferred_lft forever[root@proxy ~]# ip a
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:e4:cd:ac brd ff:ff:ff:ff:ff:ffinet 192.168.88.66/24 brd 192.168.88.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet 192.168.88.88/24 scope global secondary ens37valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fee4:cdac/64 scope link valid_lft forever preferred_lft forever

192.168.88.88/24 scope global secondary ens37
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee4:cdac/64 scope link
valid_lft forever preferred_lft forever

``在这里插入图片描述

依然可以访问,实现了高可用效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KT6368A蓝牙主从一体芯片_功能简要说明

一、功能简介 新增KT1328A芯片方案的蓝牙主从一体版本&#xff0c;实现的是主从一体相互切换&#xff0c;也就是说可以设置为主机【类似于手机的角色】&#xff0c;也可以设置为从机角色&#xff0c;通过AT指令 此版本的型号命名为&#xff1a;KT1328A-SOP8 。后续需要下单…

牛客NC125 和为K的连续子数组【中等 哈希+前缀和 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11 思考 滑动窗口&#xff0c;map&#xff0c;前缀和参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修…

奇舞周刊第522期:“Vite 又开始搞事情了!!!”

奇舞推荐 ■ ■ ■ Vite 又开始搞事情了&#xff01;&#xff01;&#xff01; Vite 的最新版本将引入一种名为 Rolldown 的新型打包工具。 unocss 究竟比 tailwindcss 快多少&#xff1f; 我们知道 unocss 很快&#xff0c;也许是目前最快的原子化 CSS 引擎 (没有之一)。 巧用…

【小迪安全】学习cho1

介绍了一些名词&#xff1a; POC、EXP、Payload与Shellcode nc -lvvp 端口号 监听服务器端口 个人用机使用最多的是&#xff1a;windows10 服务器用机使用最多的是&#xff1a;Windows8&#xff0c;12&#xff0c;16 流量被防火墙拦截了&#xff0c;到这里进行给与权限 文件…

数据分析-Pandas的Andrews曲线可视化解读

数据分析-Pandas的Andrews曲线可视化解读 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据…

纳米阱可提高未来光学设备的光强度

一种配置光捕获器件的方法有望通过放大光和提高发光纳米材料的发射效率来获得更好的光学纳米器件&#xff0c;而无需复杂的技术升级。 强光束对于从医学到电子产品的无数应用至关重要&#xff0c;但使用日常光源生产它们具有挑战性。然而&#xff0c;它们可以由激光产生。激光…

J.砍树【蓝桥杯】树上差分+LCA

树上差分 多次对树上的一些路径做加法操作&#xff0c;然后询问某个点或某条边经过操作后的值&#xff0c;就要考虑树上差分了。 点差分 模拟这个过程 对x到y路径上的点权值均1&#xff0c;可以等价成对x和y的权值加1&#xff0c;对lca的权值-1&#xff0c;对fa[lca]的权值-…

十一、CountDownLatch

CountDownLatch 倒数的门栓 CountDownLatch latch new CountDownLatch(threads.length); 创建一个门栓,在门栓上面记个数每一个线程结束就countDown 开启线程latch.await(); 每一个线程结束后线程数减一&#xff0c;当 latch.await()为0的时候门栓就打开 package com.mas…

‘list‘ object has no attribute ‘encode‘

‘list’ object has no attribute ‘encode’ Connection unexpectedly closed 出错代码 import smtplib from email.mime.text import MIMETextclass SendEmial(object):封装发送邮件类def __init__(self,host:str,port:int,user:str,pwd:str):self.host hostself.port …

文件处理(一)

file文件操作_操作系统底层关系_写入文件 文件操作 一个完整的程序一般都包括数据的存储和读取&#xff1b;我们在前面写的程序数据都没有进行实际的存储&#xff0c;因此python解释器执行完数据就消失了。实际开发中&#xff0c;我们经常需要从外部存储介质&#xff08;硬盘…

基于Linux使用C语言实现简单的目录管理

在Linux下&#xff0c;需要实现某个目录下文件的遍历的时候&#xff0c;可以使用opendir&#xff0c;readdir&#xff0c;closedir这些接口。这些接口使用说明如下所示&#xff1a; 1).opendir DIR* opendir(const char * name); #include <sys/types.h> #include …

Linux系统学习总结(上)

B站大学地址&#xff1a;第二章-04-ls命令的参数和选项_哔哩哔哩_bilibili 操作系统概述 1、计算机是由硬件和软件两部分组成的 2、操作系统是软件的一类&#xff0c;主要作用是协助用户调度硬件工作&#xff0c;充当用户和计算机硬件之间的桥梁 3、常见的操作系统分为两类…

车企都卷入鸿蒙开发的行了!难怪岗位需求量涨这么快!!!

近日华为鸿蒙 OS 官微宣布&#xff0c;首批汽车行业伙伴广汽传祺、岚图汽车、零跑汽车、凯翼汽车官宣加入鸿蒙生态。 这四家车企加入&#xff0c;会不会影响着其他车企想哪些手机APP厂商那种陆续的跟上呢&#xff1f; 其实在此前国内新能源扛把子比亚迪早已与华为达成了合作&a…

18个惊艳的可视化大屏(第26辑):航空与运输业

hello&#xff0c;我是贝格前端工场老司机&#xff0c;这是第26期了&#xff0c;本次带来可视化大屏在航空与运输业的应用案例&#xff0c;喜欢文章的别忘点赞关注&#xff0c;文章底部也有其他行业的案例。 可视化大屏在航空与运输业中具有以下九大价值&#xff1a; 实时监控…

IT系统可观测性

什么是可观测性 可观测性&#xff08;Observability&#xff09;是指能够从系统的外部输出推断出系统内部状态的能力。在IT和云计算领域&#xff0c;它涉及使用软件工具和实践来收集、关联和分析分布式应用程序以及运行这些应用程序的硬件和网络产生的性能数据流。这样做可以更…

心灵治愈交流平台|基于springboot框架+ Mysql+Java+B/S结构的心灵治愈交流平台设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 用户功能模块 心理咨询师功能 系统功能设计 数据库…

蓝桥杯前端Web赛道-输入搜索联想

蓝桥杯前端Web赛道-输入搜索联想 题目链接&#xff1a;1.输入搜索联想 - 蓝桥云课 (lanqiao.cn) 题目要求&#xff1a; 题目中还包含effect.gif 更详细的说明了需求 那么观察这道题需要做两件事情 把表头的每一个字母进行大写进行模糊查询 这里我们会用到几个js函数&#…

洛谷 P1378 油滴扩展

本道题可以理解成一个平面直角坐标系&#xff0c;在坐标系上标出整个矩形和油滴的坐标&#xff0c;计算两个油滴的面积和直径&#xff0c;判断点是否在圆内&#xff08;点与圆的位置关系&#xff09;&#xff0c;利用使用坐标求两点间距离的公式取解。 代码如下&#xff1a; …

SpringBoot异常:类文件具有错误的版本 61.0, 应为 52.0的解决办法

问题&#xff1a; java: 无法访问org.mybatis.spring.annotation.MapperScan 错误的类文件: /D:/Program Files/apache-maven-3.6.0/repository/org/mybatis/mybatis-spring/3.0.3/mybatis-spring-3.0.3.jar!/org/mybatis/spring/annotation/MapperScan.class 类文件具有错误的…

实体门店加盟全解析:如何选择加盟项目与避免风险

对于想要开实体店或创业的人来说&#xff0c;拥有一个全面的运营方案是成功的关键。作为一名开鲜奶吧5年的创业者&#xff0c;我将为大家详细分享从选址到日常管理的实体店运营要点&#xff0c;帮助创业者少走弯路。 一、选择加盟项目 1.行业前景&#xff1a;选择一个有发展前…