Nginx(搭建高可用集群)

文章目录

    • 1.基本介绍
        • 1.在微服务架构中的位置
        • 2.配置前提
        • 3.主从模式架构图
    • 2.启动主Nginx和两个Tomcat
        • 1.启动linux的tomcat
        • 2.启动win的tomcat
        • 3.启动主Nginx,进入安装目录 `./sbin/nginx -c nginx.conf`
        • 4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp
    • 3.配置从Nginx
        • 1.将主虚拟机复制一份作为从虚拟机
        • 2.打开从虚拟机测试
        • 3.保证新虚拟机的ip和win在同一网段
          • 1.查看新虚拟机ip `ifconfig`
          • 2.查看win的ip `ipconfig`
          • 3.互相ping一下保证网络通畅
        • 4.保证两台虚拟机之间可以ping通
        • 5.Xshell远程登录两个虚拟机
        • 6.配置域名解析到 192.168.200.129
        • 7.修改nginx.conf(修改主机名即可)
          • 1.http全局块
          • 2.server块
        • 8.测试从nginx访问
          • 1.启动win的tomcat
          • 2.启动linux的tomcat
          • 3.启动从Nginx,进入安装目录 `./sbin/nginx -c nginx.conf`
          • 4.win测试访问 http://look2.sunxiansheng.cn:7777/search/cal.jsp
        • 9.综合测试
          • 1.由于看不出来结果的区别
            • 1.修改win的tomcat中cal.jsp的内容
            • 2.修改主从Nginx中的tomcat中的cal.jsp文件然后重启tomcat
          • 2.重启win的tomcat
          • 3.win访问主Nginx http://look.sunxiansheng.cn:7777/search/cal.jsp
          • 4.win访问从Nginx http://look2.sunxiansheng.cn:7777/search/cal.jsp
    • 4.在两台linux主机下载keepalived(这里只演示一个)
        • 1.将文件上传到`/opt`目录下
        • 2.在`/opt`下创建目录 /keepalived `mkdir /opt/keepalived`
        • 3.进入`/opt`目录,然后将文件解压到刚才创建的目录 `cd /opt/` `tar -zxvf keepalived-2.0.20.tar.gz -C ./keepalived`
        • 4.进入解压到的文件夹下 `cd /opt/keepalived/keepalived-2.0.20`
        • 5. 配置文件放到/etc下,安装到/usr/local下这样启动的指令就在/usr/local/sbin目录下 `./configure --sysconf=/etc --prefix=/usr/local`
        • 6.安装 `make && make install`
        • 7.如果安装成功,检查配置目录和启动指令
        • 8.在另一台linux主机也安装一下!!!
    • 5.完成高可用集群配置
        • 1.配置主Nginx
          • 编辑keepalived.conf的配置文件 `vim /etc/keepalived/keepalived.conf`
        • 2.配置从Nginx
          • 编辑keepalived.conf的配置文件 `vim /etc/keepalived/keepalived.conf`
        • 3.测试
          • 1.启动 两个keepalived `/usr/local/sbin/keepalived`
          • 2.输入 ip a,看到配置的虚拟ip即成功
          • 3.使用windows来ping这个虚拟ip,如果能ping通则说明可用
          • 4.如果没有ping通,就是配置文件的vrrp_strict没注销
            • 1.注销vrrp_strict
            • 2.关闭keepalived `killall keepalived` 或者 `kill -9 进程号`
            • 3.再次启动 `/usr/local/sbin/keepalived`
        • 4.总体测试
          • 1.win访问 http://192.168.200.18:7777/search/cal.jsp 会一直访问win和主Nginx
          • 2.关闭主的keepalived来模拟主Nginx挂掉
          • 3.win再次访问 http://192.168.200.18:7777/search/cal.jsp
    • 6.编写自动检测Nginx异常脚本kill keepalived
        • 1.进入keeplived配置文件目录 `cd /etc/keepalived/`
        • 2.编写shell脚本 `vim ch_nginx.sh`
        • 3.为该脚本增加执行权限 `chmod 755 ch_nginx.sh`
        • 4.编写配置文件 `vim /etc/keepalived/keepalived.conf`
        • 5.重启主Nginx所在的keepalived `killall keepalived && /usr/local/sbin/keepalived`
        • 6.测试
          • 1.关闭主nginx `./sbin/nginx -s stop`
          • 2.浏览器访问 http://192.168.200.18:7777/search/cal.jsp
        • 7.注意事项和细节
          • 1.注意事项
          • 2.keepalived.conf 详解

1.基本介绍

1.在微服务架构中的位置

image-20240407140155292

2.配置前提

image-20240407140830550

3.主从模式架构图
  • 注意:这里由于tomcat1在主Nginx上,一旦主Nginx崩溃,则这个tomcat就不可用,所以才需要在从Nginx也搭建一份,如果部署在独立主机上就不需要,就像这个tomcat2

2.启动主Nginx和两个Tomcat

1.启动linux的tomcat

image-20240407143616337

2.启动win的tomcat

image-20240407143708044

3.启动主Nginx,进入安装目录 ./sbin/nginx -c nginx.conf
4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp

image-20240407145553336

3.配置从Nginx

1.将主虚拟机复制一份作为从虚拟机

image-20240407153840257

2.打开从虚拟机测试

image-20240407153943910

3.保证新虚拟机的ip和win在同一网段
1.查看新虚拟机ip ifconfig

image-20240407154456661

2.查看win的ip ipconfig

image-20240407154631237

3.互相ping一下保证网络通畅

image-20240407154651353

image-20240407154704896

4.保证两台虚拟机之间可以ping通

image-20240407155255781

image-20240407155304675

5.Xshell远程登录两个虚拟机

image-20240407160100623

6.配置域名解析到 192.168.200.129

image-20240407161158332

7.修改nginx.conf(修改主机名即可)
1.http全局块

image-20240407161719532

2.server块

image-20240407161729776

8.测试从nginx访问
1.启动win的tomcat
2.启动linux的tomcat

image-20240407162359458

3.启动从Nginx,进入安装目录 ./sbin/nginx -c nginx.conf
4.win测试访问 http://look2.sunxiansheng.cn:7777/search/cal.jsp

image-20240407162720142

9.综合测试
1.由于看不出来结果的区别
1.修改win的tomcat中cal.jsp的内容

image-20240407163631586

2.修改主从Nginx中的tomcat中的cal.jsp文件然后重启tomcat

image-20240407164731044

image-20240407164417923

2.重启win的tomcat
3.win访问主Nginx http://look.sunxiansheng.cn:7777/search/cal.jsp

image-20240407165147179)

image-20240407163759075

4.win访问从Nginx http://look2.sunxiansheng.cn:7777/search/cal.jsp

image-20240407165217634

image-20240407163831881

4.在两台linux主机下载keepalived(这里只演示一个)

1.将文件上传到/opt目录下

image-20240407170123038

2.在/opt下创建目录 /keepalived mkdir /opt/keepalived
3.进入/opt目录,然后将文件解压到刚才创建的目录 cd /opt/ tar -zxvf keepalived-2.0.20.tar.gz -C ./keepalived

image-20240407170915846

4.进入解压到的文件夹下 cd /opt/keepalived/keepalived-2.0.20

image-20240407171105717

5. 配置文件放到/etc下,安装到/usr/local下这样启动的指令就在/usr/local/sbin目录下 ./configure --sysconf=/etc --prefix=/usr/local

image-20240407171518409

image-20240407171614106

6.安装 make && make install

image-20240407171738617

7.如果安装成功,检查配置目录和启动指令

image-20240407171817048

image-20240407171926121

8.在另一台linux主机也安装一下!!!

5.完成高可用集群配置

1.配置主Nginx
编辑keepalived.conf的配置文件 vim /etc/keepalived/keepalived.conf

image-20240407173602570

image-20240407173735851

2.配置从Nginx
编辑keepalived.conf的配置文件 vim /etc/keepalived/keepalived.conf

image-20240407174036816

image-20240407181312292

3.测试
1.启动 两个keepalived /usr/local/sbin/keepalived

image-20240407174550886

image-20240407174543313

2.输入 ip a,看到配置的虚拟ip即成功

image-20240407174829097

3.使用windows来ping这个虚拟ip,如果能ping通则说明可用

image-20240407175007813

4.如果没有ping通,就是配置文件的vrrp_strict没注销
1.注销vrrp_strict

image-20240407175140213

2.关闭keepalived killall keepalived 或者 kill -9 进程号

image-20240407175610064

3.再次启动 /usr/local/sbin/keepalived
4.总体测试
1.win访问 http://192.168.200.18:7777/search/cal.jsp 会一直访问win和主Nginx

image-20240407180247589

image-20240407180253631

2.关闭主的keepalived来模拟主Nginx挂掉

image-20240407180642129

3.win再次访问 http://192.168.200.18:7777/search/cal.jsp

image-20240407181847419

image-20240407181840010

6.编写自动检测Nginx异常脚本kill keepalived

1.进入keeplived配置文件目录 cd /etc/keepalived/

image-20240407193313910

2.编写shell脚本 vim ch_nginx.sh
#!/bin/bash
num=`ps -C nginx --no-header | wc -l`
if [ $num -eq 0 ];then
killall keepalived
fi
3.为该脚本增加执行权限 chmod 755 ch_nginx.sh

image-20240407193259347

4.编写配置文件 vim /etc/keepalived/keepalived.conf

image-20240407194118625

5.重启主Nginx所在的keepalived killall keepalived && /usr/local/sbin/keepalived

image-20240407194304900

6.测试
1.关闭主nginx ./sbin/nginx -s stop

image-20240407194659907

2.浏览器访问 http://192.168.200.18:7777/search/cal.jsp
  • 这里是因为一旦停止主nginx,我们的脚本就会检测出异常,然后杀死keepalived的进程,然后将权重-20
  • 这时再访问,就只会访问到从Nginx了

image-20240407194730364

7.注意事项和细节
1.注意事项

image-20240407195240269

2.keepalived.conf 详解
#这里只注释要修改的地方
global_defs {
notification_email {
test@foxmail.com #接收通知的邮件地址
}
notification_email_from Alexandre.Cassen@firewall.loc #发送邮件的邮箱
smtp_server 192.168.200.1 #smtp server 地址
smtp_connect_timeout 30
router_id Node132 #Node132 为主机标识
vrrp_skip_check_adv_addr
#vrrp_strict #这里需要注释,避免虚拟 ip 无法 ping 通
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #主节点 MASTER 备用节点为 BACKUP
interface ens33 #网卡名称
virtual_router_id 51 #VRRP 组名,两个节点的设置必须一样,指明属于同一 VRRP 组
priority 100 #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
advert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication { #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定虚拟 IP, 两个节点设置必须一样
192.168.200.16
}
}

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

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

相关文章

python邮件发送

第一种方式 一:发送的邮件要设置授权码,通过邮箱邮箱授权码去验证,让邮件服务器帮我们去转发邮件到要接收的邮件,代码中的授权码,是需要登录126邮箱(我这里是以126邮件发送的,具体的以自己为准…

Mybatis入门2

本文章是下面文章的扩充 Mybatis入门-CSDN博客文章浏览阅读432次,点赞6次,收藏10次。Mapper接口创建在java代码块中//dao层/*** 功能:查询所有用户数据* return*/https://blog.csdn.net/luosuss/article/details/138420052 映射配置文件 i…

【Python可视化】pyecharts

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。 需要安…

opencv4.8 系列一Trackbar图像管理

创建亮度 static void on_lightness(int b, void* userdata) {Mat image *((Mat*)userdata);dst Mat::zeros(image.size(), image.type());;m Mat::zeros(image.size(), image.type());addWeighted(image,1.0,m,0,b,dst);imshow("亮度与对比度调整",dst); }创建对…

OceanBase 分布式数据库【信创/国产化】- OceanBase 资源单元的均衡

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 资源单元的均衡前言OceanBase 数据更新架构资源单元的均衡多种资源CPU 单一资源的均衡示例多种资源占用率的计算资源单元的分配资源单元的均衡资源单元均衡的控制手动迁移资源单元OceanBase 分…

408数据结构-线索二叉树 自学知识点整理

前置知识:二叉树的概念、性质与存储结构 线索二叉树的基本概念 遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列(如中序遍历序列),从而得到几种遍历序列,使得该序列中的每个结点(除了首尾两个…

使用PyTorch从头实现Transformer

前言 本文使用Pytorch从头实现Transformer,原论文Attention is all you need paper,最佳解读博客,学习视频GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了…

acwing算法提高之基础算法--前缀和、差分、二分

目录 1 介绍2 训练 1 介绍 本博客用来记录前缀和、差分、二分相关的题目。 2 训练 题目1&#xff1a;99激光炸弹 C代码如下&#xff0c; #include <cstdio> #include <string> #include <iostream> #include <algorithm>using namespace std;cons…

node.js中path模块-路径处理,语法讲解

node中的path 模块是node.js的基础语法&#xff0c;实际开发中&#xff0c;我们通过使用 path 模块来得到绝对路径&#xff0c;避免因为相对路径带来的找不到资源的问题。 具体来说&#xff1a;Node.js 执行 JS 代码时&#xff0c;代码中的路径都是以终端所在文件夹出发查找相…

JSON.stringify()和JSON.parse()

JSON.stringify() JSON.stringify() 是 JavaScript 中的一个内置方法&#xff0c;用于将一个 JavaScript 值&#xff08;对象或值&#xff09;转换为一个 JSON 字符串。这个方法对于在客户端和服务器之间传输数据特别有用&#xff0c;因为 JSON 是一种轻量级的数据交换格式&am…

Scratch编程和Python编程的区别,孩子更适合哪一种

Scratch编程和Python编程有一些显著的不同之处&#xff1a; Scratch是一种基于可视化编程的编程语言&#xff0c;通过拖拽代码块来构建程序&#xff0c;适合初学者和年龄较小的孩子学习。而Python是一种文本编程语言&#xff0c;需要输入代码来编写程序&#xff0c;更适合有一定…

SpringBoot对接口配置跨域设置

目录 1. 使用 @CrossOrigin 注解 2. 全局跨域配置 2.1. 注意事项 在 Spring Boot 应用中,接口配置跨域(Cross-Origin Resource Sharing,CORS)设置是一个常见的需求,特别是当你的前端应用和后端服务部署在不同的域名下时。 以下是几种设置跨域的方法: 1. 使用 @Cross…

基于Springboot的滑雪场管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的滑雪场管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

11、Flink 的 Keyed State 详解

1.Keyed DataStream 使用 keyed state&#xff0c;首先需要为DataStream指定 key&#xff08;主键&#xff09;&#xff1b;这个 key 用于状态分区&#xff08;数据流中的 Record 也会被分区&#xff09;可以使用 DataStream 中 Java/Scala API 的 keyBy(KeySelector) 或者是 …

搜好货API接口:快速获取商品列表的利器

搜好货商品列表API接口允许开发者根据关键字搜索并获取相关的商品列表数据。接口支持多种参数配置&#xff0c;可以根据需求灵活调整搜索条件和结果返回格式。 点击获取key和secret API接口请求说明 请求地址&#xff1a;https://api.souhaohuo.com/goods/search请求方法&…

速卖通关键字搜索API接口:快速获取商品列表的利器

速卖通关键字搜索API接口允许开发者根据用户输入的关键字进行商品搜索&#xff0c;并返回与之相关的商品列表。通过调用该接口&#xff0c;您可以快速获取与关键字匹配的商品信息&#xff0c;包括商品标题、价格、图片等&#xff0c;为您的电商业务提供有力支持。 三、API接口…

以信息挖掘为关键技术的智慧校园建设

随着信息技术的快速发展&#xff0c;数据信息资源以井喷的姿态涌现。数据信息的大量涌现给人们带来丰富的数据信息资源&#xff0c;但面对海量的信息资源时&#xff0c;加大了人们对有效信息资源获取的难度&#xff0c;数据挖掘技术正是这一背景下的产物&#xff0c;基于数据挖…

【Redis】Redis安装、配置、卸载使用可视化工具连接Redis

文章目录 1.前置条件2.安装Redis2.1下载Redis安装包并解压2.2在redis目录下执行make命令2.3修改Redis配置文件2.4启动Redis服务2.5连接redis服务 3.Redis卸载4.使用可视化工具连接Redis 1.前置条件 Linux操作系统需要要是64位.如果不清楚自己Linux上是多少位的,可以使用以下命…

C语言之详细讲解文件操作(抓住文件操作的奥秘)

什么是文件 与普通文件载体不同&#xff0c;文件是以硬盘为载体存储在计算机上的信息集合&#xff0c;文件可以是文本文档、图片、程序等等。文件通常具有点三个字母的文件扩展名&#xff0c;用于指示文件类型&#xff08;例如&#xff0c;图片文件常常以KPEG格式保存并且文件…

一文了解复杂度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、算法效率二、时间复杂度1.定义2.大O的渐进表示法3.一般常见复杂度4.实例 三、空间复杂度1.定义2.空间复杂度计算3.实例 总结 前言 计算复杂性理论&#xf…