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
}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 Dockerfile 部署nginx服务(实现HTTPS功能)

目录 前言 1、任务要求 2、建立工作目录并上传nginx安装包 3、创建自签名证书 4、创建 nginx Dockerfile 文件 5、准备并编写 nginx.conf 配置文件 6、准备nginx页面文件 7、工作目录文件结构 8、生成镜像 8、启动容器并开启宿主机端口映射 9、浏览器测试 前言 Ngi…

DS:顺序表、单链表的相关OJ题训练(1)

欢迎各位来到 Harper.Lee 的学习小世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu可以来后台找我交流哦! 在DS:单链表的实现 和 DS:顺序表的实现这两篇文章中,我详细介绍了顺序表和单链表的…

CMakeLists.txt语法规则:foreach 循环基本用法

一. 简介 cmake 中除了 if 条件判断之外,还支持循环语句,包括 foreach()循环、while()循环。 本文学习 CMakeLists.txt语法中的循环语句。 CMakeLists.txt语法中 有两种 循环实现方式:foreach循环与 while循环。 二. CMakeLists.txt语法规则…

tomcat+maven+java+mysql图书管理系统1-配置项目环境

目录 一、软件版本 二、具体步骤 一、软件版本 idea2022.2.1 maven是idea自带不用另外下载 tomcat8.5.99 Javajdk17 二、具体步骤 1.新建项目 稍等一会,创建成功如下图所示,主要看左方目录相同不。 给maven配置国外镜像 在左上…

asp.net朱勇项目个人博客(3)

引文:按照书上的项目,我们最后实现管理端的三个增删改查的功能即可,相对与三个增删改查,文章,分类和留言,这里我们所需要用的的关联的一个表就是文章表,因为文章表每一个文章的增加显示和修改都需要对应的一个分类&…

Spring入门及注解开发

1 引言 自定义注解可以用来为代码添加元数据信息,简化配置,提高代码的可读性和可维护性。通过自定义注解,可以实现自定义的业务逻辑、约束条件、配置参数等功能。在Spring中,自定义注解常用于标记组件、配置依赖注入、AOP切面等。 自定义注解可以添加元数据信息,低代码框…

银行智能化数据安全分类分级实践分享

文章目录 前言一、数据安全智能分类分级平台建设背景二、数据安全分类分级建设思路和实践1、做标签– 数据安全标签体系2、打标签– 鹰眼智能打标平台 3.03、用标签– 全行统一“数据安全打标签结果”服务提供前言 随着国家对数据安全的高度重视,以及相关法律法规的出台,数据…

【linuxC语言】stat函数

文章目录 前言一、stat函数二、示例代码总结 前言 在Linux系统编程中,stat() 函数是一个非常重要的工具,用于获取文件的元数据信息。无论是在系统管理、文件处理还是应用开发中,都可能会用到 stat() 函数。通过调用 stat() 函数,…

ue引擎游戏开发笔记(31)——对角色移动进行优化:角色滑步处理

1.需求分析: 角色的移动与动画不匹配,角色移动起来像是在滑行。。。适当进行优化。 2.操作实现: 这个问题本质是角色的运动速度并没有匹配世界动画的运行速度,不论世界动画快慢于角色移动速度,都会感到有滑步感。所以…

基于 Spring Boot 博客系统开发(六)

基于 Spring Boot 博客系统开发(六) 本系统是简易的个人博客系统开发,为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。🌿🌿🌿 基于 Spring Boot 博客系统开发(五)&#x1f…

适合打工人的赚钱软件有哪些?盘点5个实用的赚钱软件(真实靠谱)

在这个互联网时代,手机不仅仅是我们的通讯工具,更是我们赚钱的小助手。今天,就让我带你一探究竟,揭秘那些真实靠谱的赚钱软件,让你在家也能轻松赚钱! 一、抖音极速版:刷视频也能赚钱 抖音极速版…

Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝

Flutter笔记 Widgets Easier组件库(11)使用提示吐丝 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

【前端学习——网络相关】浏览器同源策略和跨域

浏览器的同源策略 为什么要有? 帮助阻隔恶意文档,减少可能被攻击的媒介。(就是为了安全) 如果非同源,共有三种行为受到限制 (1) Cookie、LocalStorage 和 IndexDB 无法读取。 (2…

央视影音 视频下载 2

浏览器猫抓插件,拿到视频地址,这个地址的播放不正常,花屏。https://dh5.cntv.qcloudcdn.com/asp/h5e/hls/2000/0303000a/3/default/6edd15a0ebb3467993bec51a95be0e22/2000.m3u8 改一下地址,把代码中的h5e去掉。网址改为https://…

解决MySQL进行group by 字段返回大量异常结果

目录 问题 原因 解决方案 问题 看这条sql CH2O这个字段的取值只有1,2,3,正常进行group by 分类累加统计返回结果应该是这样: [{"CH2O": 2.0,"insufficient_weight": 142,"Normal_Weight": 164…

锁相环原理解析

在计算机和嵌入式系统中,常常要用锁相环来倍频,那么,锁相环是如何倍频的,其原理又是什么呢? 目录 1. 锁相环基本概念与构成1.1 鉴相器1.2 低通滤波器1.3 压控振荡器 2. 锁相环如何实现倍频3. 锁相环也会失效&#xff…

基于springboot+vue+Mysql的租房网站

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

[C++核心编程-01]----C++内存四区详细解析

前言 当程序运行时,操作系统会为程序分配一块内存空间,这块内存空间被划分为不同的区域,每个区域有其独特的作用和管理方式。四个区域分别为:堆、栈、全局/静态存储区和常量存储区。每个区域都有不同的作用和特点&#xf…

夏目友人帐所有妖怪名单

夏目友人帐妖怪名单 夏目友人帐 第一季 2008.07.07第1话:猫和友人帐 / 猫と友人帐 菱垣 狞影 斑第2话:露神之祠 / 露神の祠 露神 濯第3话:八原的怪人 / 八ツ原の怪人 一只目 牛头(中级妖怪)第4话:时雨与少女…

PHP源码_众筹商城

众筹商城源码 众筹商品平台 商城加共识元富之路 网上商城众筹 前端是编译后的,后端PHP,带商城 运行截图 源码贡献 https://githubs.xyz/boot?app39 部分数据库表 CREATE TABLE ti_shopro_store (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,nam…