LNMT动静分离+keepalived

news2024/11/26 9:27:58

目录

前言

一、实验拓扑

二、配置tomcat

 三、nfs配置

四、配置NGINX

 五、配置NGINX的双机热备

六、验证双机热备



前言

LNMT动静分离是指在LNMT架构中使用动静分离技术,将动态请求和静态请求分开处理和分发,以提高性能和可扩展性。这种架构使用Nginx作为反向代理服务器,将静态资源直接由Nginx服务器提供,而将动态请求转发给后端的Tomcat应用服务器进行处理。

Keepalived是一种开源的高可用性解决方案,可以用于实现服务器之间的故障转移和负载均衡。它使用虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP)来监控服务器的状态,并自动切换到备用服务器以实现高可用性。

当将LNMT动静分离架构与Keepalived结合使用时,通常是在Nginx服务器部署Keepalived以实现高可用性。可以部署多个Nginx服务器,并使用Keepalived来监控它们的状态。如果主要的Nginx服务器发生故障或不可用,Keepalived会自动将IP地址转移到备用服务器,确保服务的连续性。

此组合架构提供了高可用性和负载均衡的好处。即使其中一个Nginx服务器发生故障,Keepalived会自动将请求转发到其他可用的Nginx服务器,以确保服务的持续性和高性能。同时,LNMT动静分离架构通过将静态资源由Nginx直接提供,减轻了后端Tomcat服务器的负载,并提高了静态资源的访问速度。


一、实验拓扑

本次实验采用的nginx结合Tomcat来实现动静分离,负载均衡;使用nfs服务来为Tomcat共享目录

在调度器NGINX上配置keepalived来提高可用性

二、配置tomcat

Apache Tomcat® - Welcome!

##两台tomcat服务器先进行如下步骤 :
##解压/建立软连接
tar xf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/catdown
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/catup
 
###创建挂载目录
/usr/local/tomcat
mkdir webapps1
###修改tomcat的访问目录
vim /usr/local/tomcat/conf/server.xml
###修改host字段插入
<Context path="" docBase="/usr/local/tomcat/webapps1" />


 三、nfs配置

安装及配置

##安装nfs服务
yum -y install nfs
##创建共享目录
mkdir /opt/web1
mkdir /opt/web2
##配置nfs的配置文件
vim /etc/exports
##插入
/opt/web1 192.168.115.136/24(rw,sync,no_root_squash)
/opt/web2 192.168.115.140/24(rw,sync,no_root_squash)
##让他生效
exportfs -arv
##启动nfs
systemctl start nfs

回到两台Tomcat挂载共享目录

###查看可挂载的目录
showmount -e 192.168.115.131
###挂载到webapps1
 mount 192.168.115.131:/opt/web1 /usr/local/tomcat/webapps1
##查看挂载情况
df
###分别书写测试页面
echo tomcat1 > webapps1/index.jsp
echo tomcat2 > webapps1/index.jsp
##启动Tomcat
catup
##查看端口、
netstat -anput |grep 8080

 测试页面

四、配置NGINX

安装NGINX

###安装
yum -y install epel-release.noarch 
yum -y install nginx
##修改配置文件
vim /etc/nignx/nginx.conf
##在http字段插入
upstream tomcat {
                server 192.168.115.136:8080;
                server 192.168.115.140:8080;
        }
##server字段插入
location ~ \.jsp$ {
                proxy_pass http://tomcat;
                proxy_set_header  Host $host;
        }
        location / {
                root    /usr/share/nginx/html;
                index   index.html;
        }
##启动NGINX

访问2台调度器

 测试动静分离

 

 五、配置NGINX的双机热备

安装keepalived

##安装
yum -y install keepalived
##配置
vim /etc/keepalived/keepalived.conf
############################################################
! 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_DEVEL            ###从的编号要改动一下 LVS_DEVEL1
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER                  ###从改为BACKUP
    interface ens33               ###网卡名
    virtual_router_id 51
    priority 100                  ###从的优先级要比主低
    advert_int 1
   authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.115.200          ###VIP用来访问的虚拟IP
    }
}
virtual_server 192.168.115.200 8080 {       ###vip对应的真是IP 在下面
    delay_loop 6
    lb_algo rr 
    persistence_timeout 50
    protocol TCP

    real_server 192.168.115.136 8080 {        ###这是Tomcat服务器的IP
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
            }
url { 
              path /testurl2/test.jsp
            }
            url { 
              path /testurl3/test.jsp
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.115.140 8080 {       ###这是Tomcat服务器的IP
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
            }
            url { 
              path /testurl2/test.jsp
}
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

启动keepalived

systemctl start keepalived

查看主的IP说明keepalived生效了

 VIP页面访问测试

静态页面

动态页面

六、验证双机热备

模拟调度器主宕机init 0,直接给他关机,使用调度器备访问

1、查看调度器备的IP,ip漂移说明keepalived生效

 2、页面访问测试

 动态页面

 正常访问,试验成功。

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

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

相关文章

在GPU服务器(Linux)上安装Anaconda和PyTorch环境

安装Anaconda3 Anaconda官网&#xff1a;https://repo.anaconda.com/archive/ 根据自己需要&#xff0c;复制安装包名字&#xff0c;以Anaconda3-2023.07-2-Linux-x86_64.sh为例 命名规则&#xff1a;Anaconda3-<版本号>-Linux-x86_64.sh 在终端输入命令&#xff0c;下…

设备分类、设备号申请和注销

一、Linux内核对设备的分类 linux的文件种类&#xff1a; -&#xff1a;普通文件d&#xff1a;目录文件p&#xff1a;管道文件s&#xff1a;本地socket文件l&#xff1a;链接文件c&#xff1a;字符设备b&#xff1a;块设备 Linux内核按驱动程序实现模型框架的不同&#xff0…

JSX底层渲染机制

JSX底层渲染机制 一,.步骤 1.把我们写的jsx语法编译为虚拟DOM【virtualDOM】 虚拟DOM对象&#xff1a;框架自己内部构建的一套对象体系&#xff08;对象的相关成员都是React内部绑定的&#xff09;&#xff0c;基于这些属性描述出我们所构建视图中的DOM接的相关特征 1基于ba…

【crypto++使用】使用crypto++库函数运行RSA非对称加密

系列文章目录 1.&#xff08;全网最详细攻略&#xff09;【Crypto】在Visual studio2022中运行Cryptopp 文章目录 系列文章目录前言一、RSA加密过程、步骤可学习的网址 二、代码部分1.visual studio编程注意一个标准案例提供给大家 2.RSA密钥生成思考&#xff1a; 3.关于RSA的…

计算机视觉-卷积神经网络

目录 计算机视觉的发展历程 卷积神经网络 卷积&#xff08;Convolution&#xff09; 卷积计算 感受野&#xff08;Receptive Field&#xff09; 步幅&#xff08;stride&#xff09; 感受野&#xff08;Receptive Field&#xff09; 多输入通道、多输出通道和批量操作 …

死信队列理解与使用

一、简介 在rabbitMQ中常用的交换机有三种&#xff0c;直连交换机、广播交换机、主题交换机&#xff1b; 直连交换机中队列与交换机需要约定好routingKey去进行绑定&#xff1b; 广播交换机并不需要routingKey绑定,只需队列与交换机绑定即可&#xff1b; 主题交换机最大的特…

dml dql 约束 数据库设计

dml 1.添加数据 *语法 &#xff1a; *insert into 表名&#xff08;列名1&#xff0c;列名2&#xff0c;……..列名n&#xff09;values(值1&#xff0c;值2&#xff0c;…值n) *注意&#xff1a; 1.列名和值要一一对应 2.如果表名后&#xff0c;不写列名&#xff0c;就要给…

QT 获取程序编译时间并且转化格式

前言 有的时候我们要在程序的关于界面加上程序的编译时间等信息。可以通过如下代码实现 QString buildTime QStringLiteral("%1 %2").arg(__DATE__).arg(__TIME__);ui->label->setText(buildTime);QDateTime dateTime QLocale("en_US").toDateTim…

easyx图形库6:实现飞机大战:

飞机大战 一.飞机大战的基本窗体&#xff1a;二.飞机大战的主要战斗场景元素&#xff1a;一.透明图片&#xff1a;二.精灵对象&#xff1a; 三.主游戏场景的元素&#xff1a;1.英雄飞机的结构体定义&#xff1a;2.英雄飞机的代码实现&#xff1a;3.游戏背景的结构体定义&#x…

Day5:react函数组件与类组件

「目标」: 持续输出&#xff01;每日分享关于web前端常见知识、面试题、性能优化、新技术等方面的内容。 「主要面向群体&#xff1a;」前端开发工程师&#xff08;初、中、高级&#xff09;、应届、转行、培训、自学等同学 Day4-今日话题 react「函数组件和类组件」的区别&…

查局域网所有占用IP

查局域网所有占用IP 按&#xff1a;winr 出现下面界面&#xff0c;在文本框中输入 cmd 按确定即可出现cmd命令界面 在cmd命令窗口输入你想要ping的网段&#xff0c;下面192.168.20.%i即为你想要ping的网段&#xff0c;%i代表0-255 for /L %i IN (1,1,254) DO ping -w 1 -n 1…

(动态规划) 剑指 Offer 49. 丑数 ——【Leetcode每日一题】

❓剑指 Offer 49. 丑数 难度&#xff1a;中等 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。求按从小到大的顺序的第 n 个丑数。 示例: 输入: n 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: 1 是丑数。…

2024年新iPad Pro将实现6年来最大的升级

彭博社的Mark Gurman长期以来一直将iPad Pro的下一次重大更新定在2024年&#xff0c;在最新一期的Power On时事通讯中&#xff0c;他详细阐述了一些细节&#xff0c;这些细节将使其成为“自2018年以来该产品的首次重大更新” 尽管Gurman将最近的iPad升级描述为“最近特别小”&…

word6 图文混排

目录 7-1 段落缩进排版7-2 搞定多级列表难题 7-1 段落缩进排版 段落对齐 缩进问题 悬挂缩进&#xff1a;缩进首行以外的段落 段落对齐&#xff1a; 7-2 搞定多级列表难题

k8s 安装 kubernetes安装教程 虚拟机安装k8s centos7安装k8s kuberadmin安装k8s k8s工具安装 k8s安装前配置参数

k8s采用master, node1, node2 。三台虚拟机安装的一主两从&#xff0c;机器已提前安装好docker。下面是机器配置&#xff0c;k8s安装过程&#xff0c;以及出现的问题与解决方法 虚拟机全部采用静态ip, master 30机器, node1 31机器, node2 32机器 机器ip 192.168.164.30 # ma…

【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)

​&#x1f47b;内容专栏&#xff1a; 《数据结构与算法篇》 &#x1f428;本文概括&#xff1a; 利用数据结构栈(Stack)来模拟递归&#xff0c;实现快排的非递归版本&#xff1b;递归版本测试OJ题时&#xff0c;有大量重复元素样例不能通过&#xff0c;导致性能下降&#xff0…

Self-Supervised Learning

Self-Supervised Learning Bert 的数据是 340M parameters 抽象解释&#x1f446; Bert 单个字的预测 把一个字盖住&#xff1a; 1、把一个字替换成特殊字符(MASK)。 2、替换成随机的一个字,进行训练。 next sentence prediction 通过变换两个连起来的句子的顺序&#x…

C. Battle 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest

Problem - C - Codeforces 题目大意&#xff1a;有n堆石子&#xff0c;给出一个数p&#xff0c;A先B后&#xff0c;每个人每次只能取p的幂个石子&#xff08;包括1&#xff09;问A能不能赢 1<n<3e5;1<p<1e18 思路&#xff1a;先递归算出sg函数看看&#xff0c;s…

detour编译问题及导入visual studio

Detours是经过微软认证的一个开源Hook库&#xff0c;Detours在GitHub上&#xff0c;网址为 https://github.com/Microsoft/Detours 注意版本不一样的话也是会出问题的&#xff0c;因为我之前是vs2022的所以之前的detours.lib不能使用&#xff0c;必须用对应版本的x64 Native To…

线性代数的艺术

推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容&#xff0c;就把线性代数的重点全画完了&#xff0c;清晰明了。 《线性代数的艺术》PDF版本&…