Haproxy+Keepalived高可用部署

news2024/11/25 4:22:03

环境准备:

IPVIP
master+haproxy192.168.134.170192.168.134.100
backup+haproxy192.168.134.172192.168.134.100
web1192.168.134.171
web2192.168.134.173
web3192.168.134.174

1、首先配置啊三台web服务器,并写好测试页面。

web1(配置jsp页面)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  # 配置扩展源
yum install tomcat tomcat-webapps -y  # 配置tomcat环境
cd /var/lib/tomcat/webapps
mv ROOT/ ROOT.bak  # 备份ROOT文件
mkdir ROOT  # 创建新的ROOT文件,准备编辑jsp文件
cd ROOT
vim index.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!doctype html>
<html>
 <head>
 <title>第一个jsp程序</title>
 </head>
 <body>
 <%
 out.println("Hello World! ");
 %>
 </body>
 </html>

systemctl restart tomcat # 重启tomcat服务器
~        

web2(配置static页面)

yum install httpd -y  # 安装http服务器,用httpd服务器进行测试
echo "web static page , ip is `hostname -I`." >> /var/www/html/index.html 
systemctl start httpd

web3(配置video页面)

yum install httpd -y
echo "video test page , ip is `hostname -I`." >> /var/www/html/index.html
systemctl start httpd

2、在master节点上进行haproxy配置(backup节点也做相同配置)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  # 安装扩展源
yum install haproxy
vim /etc/haproxy/haproxy.cfg  # 修改haproxy配置文件,以下中列出修改过的地方。

frontend www
    bind *:80  # 指定监听地址
    option httplog
    option forwardfor
    log global

    acl host_www hdr_dom(host) -i www.openlab.cn  # 指定通过www.openlab.cn会访问到hdr_www
    acl host_static hdr_dom(host) -i static.openlab.cn
    acl host_video hdr_dom(host) -i video.openlab.cn


    use_backend server_www          if host_www  # 指定如果访问到hdr_www,调用后端backend server_www
    use_backend server_static       if host_static
    use_backend server_video        if host_video
    default_backend             server_static


backend server_static
    balance     roundrobin
    option      redispatch
    option      abortonclose
    option      httpchk GET /index.html  # 指定访问的页面
    server      web2 192.168.134.173:80 check

backend server_www
    balance     roundrobin  # 指定算法
    option      redispatch
    option      abortonclose
    option      httpchk GET /index.jsp
    server      web1 192.168.134.171:8080 check

backend server_video
    balance     roundrobin
    option      redispatch
    option      abortonclose
    option      httpchk GET /index.html
    server      web3 192.168.134.174:80 check



listen stats
    bind *:88
    stats refresh 30s
    stats uri /haproxy-status
    stats realm Welcome login \ Haproxy
    stats auth admin:123456
    stats hide-version

vim /etc/rsyslog.conf # 修改日志

# Save haproxy messages also to haproxy.log
local2.*                                      /var/log/haproxy.log


# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


systemctl  start  haproxy.service rsyslog.service

3、修改keepalived配置文件

主节点
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1
}
vrrp_script check_haproxy {
  script "killall -0 haproxy"
  #script "/etc/keepalived/check_nginx.sh"
  interval 2
  #weight -30
}
vrrp_instance VI_1 {
    state MASTER
    # nopreempt
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

   track_script {
        check_haproxy
   }

    virtual_ipaddress {
        192.168.134.100
    }
}


备节点修改:
    state BACKUP
    priority 80


systemctl restart keepalived.service haproxy.service

4、修改hosts文件

192.168.134.100 www.openlab.cn static.openlab.cn video.openlab.cn

5、测试如下:

(1)、可以通过域名访问(成功)

(2)keepalived故障(成功)

(3)keepalived恢复后,VIP回切(成功)

 

 

(4)测试haproxy故障切换(成功)

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

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

相关文章

Wlan——CAPWAP协议的报文格式与报文封装

目录 CAPWAP报文携带信息 Discovery报文&#xff08;AP先发&#xff09; Join报文&#xff08;AP先发&#xff09; Configuration Status报文&#xff08;AP先发&#xff09; Change State报文&#xff08;AP先发&#xff09; Echo报文&#xff08;AP和AC都可以先发&…

2023 CCF BDCI 数字安全公开赛正式开启报名

2023 CCF BDCI 数字安全公开赛重磅来袭&#xff01; 全新的赛道场景 丰厚的赛事奖励 精彩的周边活动 数字安全守护人的狂欢盛宴 快来报名参加吧 大赛背景 伴随着数智化的持续加深&#xff0c;网络安全、数据安全风险遍布于所有场景之中&#xff0c;包括工业生产、能源、交…

SSH远程连接MacOS catalina并进行终端颜色配置

一、开关SSH服务 在虚拟机上安装了MacOS catalina&#xff0c;想要使用SSH远程进行连接&#xff0c;但是使用“系统偏好设置”/“共享”/“远程登录”开关进行打开&#xff0c;却一直是正在启动“远程登录”&#xff1a; 难道是catalina有BUG&#xff1f;不过还是有方法的&…

2023年许战海咨询《竞争之王CEO年度辅导工程》火热招募中

今天产业迭代速度不断加剧,人类知识更迭周期大大压缩到2年以内,企业遭遇更多挑战:如增长乏力、品牌老化、竞争压力大、竞争方向不明确、产品同质化、利润越来越低、团队执行难等。《竞争之王CEO年度辅导工程》应运而生,旨在手把手辅导企业家及高管团队如何制定战略和落地战略&a…

Wireshark有线网卡抓包报错The capture session could not be initiated on capture device

最近在使用Wireshark进行抓包排错时&#xff0c;选择网卡后提示报错&#xff0c;在此之前从未出现过&#xff0c;报错内容如下&#xff1a; 提示内容是The capture session could not be initiated on capture device&#xff0c;无法在捕获设备上启动捕获会话要求操作是Please…

解密人工智能:线性回归 | 逻辑回归 | SVM

文章目录 1、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 2、线性回归算法2.1 线性回归的假设是什么&#xff1f;2.2 如何确定线性回归模型的拟合优度&#xff1f;2.3 如何处理线性回归中的异常值&#xff1f; 3、逻辑回归算法3.1 什么是逻辑函数?…

5.0 Spring Boot核心

1. Spring Boot注解 注解名称 注解说明 SpringBootApplication 用于标注Spring Boot应用为启动类&#xff0c;是一个组合注解&#xff0c;主要组合了SpringBootConfiguration、EnableAutoConfiguration和ComponentScan注解 SpringBootConfiguration 继承自Configuration&a…

以开放促发展 同创永益召开数字韧性生态交流会

8月3日&#xff0c;同创永益数字韧性生态交流会在北京总部举办&#xff0c;30多家合作伙伴、渠道商齐聚一堂&#xff0c;围绕同创永益品牌、产品、行业解决方案进行充分探讨&#xff0c;共话行业前瞻趋势&#xff0c;共绘跨越增长新蓝图。 活动开始前&#xff0c;同创永益渠道管…

C++——函数重载及底层原理

函数重载的定义 函数重载&#xff1a; 是函数的一种特殊情况&#xff0c;C允许在同一作用域重声明几个功能类似的同名函数&#xff0c;这些同名函数的形参列表&#xff08;参数个数或者类型&#xff0c;类型的顺序&#xff09;不同&#xff0c;常用来处理实现功能类似数据结构…

超好用的接口自动化框架,lemon-easytest内测版发布,赶紧用起来~

easytest easytest 是一个接口自动化框架。 功能特点&#xff1a; 支持 http 接口测试 支持 json&#xff0c;html,xml 格式的响应断言 支持数据库断言 支持用例标记筛选 支持用例失败重运行 支持多线程 安装 pip install lemon_easytest 快速使用 不需要写任何代码…

wsl没有响应,wsl启动失败,docker启动失败

wsl的相关问题记录和解决 问题一&#xff1a;cmd命令窗口输入wsl后没有响应&#xff0c;会卡住&#xff0c;类似如图 排查&#xff1a; 输入 wsl -l -v看是否有东西输出&#xff1b;我的电脑没有东西输出&#xff0c;依旧是卡住;有内容请重启试试从开始菜单打开&#xff0c;点…

【Git】大大大问题之syntax error near unexpected token `(‘ 的错误解决办法

话不多说&#xff0c;先上图&#xff1a; 如图&#xff0c;因为在linux环境里&#xff0c;文件路径中含有括号&#xff08;&#xff09;&#xff0c;因此报错&#xff01; 解决办法 等同于 &#xff1a;linux下解决bash: syntax error near unexpected token (’ 的错误&am…

【中危】Apache Airflow Drill Provider < 2.4.3 存在任意文件读取漏洞

漏洞描述 Apache Airflow Drill Provider 是 Apache Airflow 项目中的一个模块&#xff0c;用于提供与 Apache Drill 数据引擎的集成。 2.4.3 之前版本中&#xff0c;由于 drill#create_engine 方法未对用户传入的 url 参数进行过滤&#xff0c;攻击者可构造恶意的查询参数&a…

MYSQL-习题掌握

文章目录 SQL基本操作1 设计表操作1.1 关系表字段1.2 关系表创建1.3 关系表数据1.4 关系表关系 2 SQL操作2.1 SQL 1-102.2 SQL 11-202.3 SQL 21-302.4 SQL 31-402.5 SQL 41-50 SQL基本操作 1 设计表操作 1.1 关系表字段 1 学生表 student s_ids_names_births_sex学生编号学…

第二部分:AOP

一、AOP简介 AOP(Aspect Oriented Programming)面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构。 AOP是OOP&#xff08;面向对象编程&#xff09;的进阶版。 作用&#xff1a;在不改变原始设计的基础上为其进行功能增强。 spring理念&#x…

STM32入门——USART

江科大STM32学习记录 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 串口通信 串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、…

Web菜鸟教程 - Swagger实现自动生成文档

如果是一个人把啥都开发了&#xff0c;那用不到Swagger-UI&#xff0c;但一般情况是前后端分离的&#xff0c;所以就需要告诉前端开发人员都有哪些接口&#xff0c;传入什么参数&#xff0c;怎么调用&#xff0c;返回什么。有了Swagger-UI就能把这部分文档编写的业务给省去了。…

Wlan——CAPWAP隧道的建立过程

CAPWAP基本概念 CAPWAP全称为无线接入点的控制和配置协议&#xff08;Control And Provisioning of Wireless Access Points Protocol Specification&#xff09; CAPWAP协议主要作用 1、AP可以通过CAPWAP实现自动发现AC 2、AC通过CAPWAP协议对AP进行管理、业务配置下发 3…

一百五十二、Kettle——Kettle9.3.0本地连接Hive3.1.2(踩坑,亲测有效)

一、目的 由于先前使用的kettle8.2版本在Linux上安装后&#xff0c;创建共享资源库点击connect时页面为空&#xff0c;后来采用如下方法&#xff0c;在/opt/install/data-integration/ui/menubar.xul文件里添加如下代码 <menuitem id"file-openZiyuanku" label&…

CKEditor5 爬坑.

CKEditor5 爬坑 exportpdf.d.ts ChatGPT 推荐我使用CKEditor,确实比UEditor高不少档次。 但是如果你想使用控件中的 PDF导出,Word导入导出。 你可能需要三思。 因为其PDF导出是通过美国云服务的。 exportpdf.d.ts /*** license Copyright (c) 2003-2023, CKSource Holding sp.…