Nginx(搭建高可用集群)

news2024/7/4 6:11:06

文章目录

    • 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.coloradmin.cn/o/1643784.html

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

相关文章

力扣 647. 回文子串

题目来源:https://leetcode.cn/problems/palindromic-substrings/description/ C题解1:暴力解法。不断地移动窗口,判断是不是回文串。 class Solution { public:int countSubstrings(string s) {int len s.size();int res 0;for(int i 0;…

【机器学习-21】集成学习---Bagging之随机森林(RF)

【机器学习】集成学习---Bagging之随机森林(RF) 一、引言1. 简要介绍集成学习的概念及其在机器学习领域的重要性。2. 引出随机森林作为Bagging算法的一个典型应用。 二、随机森林原理1. Bagging算法的基本思想2. 随机森林的构造3. 随机森林的工作机制 三…

Samsung三星NP930XCJ-K01CN笔记本原厂Win10系统安装包下载

三星SAMSUNG笔记本电脑原装出厂Windows10预装OEM系统,恢复开箱状态自带系统 链接:https://pan.baidu.com/s/1Y3576Tsp8MtDxIpJGDucbA?pwdt0ox 提取码:t0ox 三星原装W10系统自带声卡,网卡,显卡,指纹,蓝牙等所有驱动、三星出厂主题专用壁纸…

vivado 在硬件中调试串行 I/O 设计-属性窗口

只要在“硬件 (Hardware) ”窗口中选中 GT 或 COMMON 块、在“链接 (Link) ”窗口中选中链接 , 或者在“扫描 (Scan)”窗口中选中扫描 , 那么就会在“ Properties ”窗口中显示该对象的属性。对于 GT 和 COMMON , 包括这些对象的所有属性、…

未雨绸缪:25岁Python程序员如何规划职业生涯,避免35岁职业危机?

一、程序员如何避免中年危机? 为了避免在35岁时被淘汰,程序员在25岁时可以采取一系列策略来规划自己的职业发展和提升技能。以下是我给大家整理的一些建议: 1. 持续学习 科技行业更新换代迅速,程序员需要保持对新技术和工具的敏…

揭秘大模型应用如何成为当红顶流?

Kimi广告神话背后的关键词战略 如果你生活在中国,你可能不认识ChatGPT,但你一定知道Kimi。无论是学生党还是打工人,都无法避开Kimi的广告。 刘同学在B站上搜教学视频时,弹出了一则软广,上面写着:“作业有…

SQL 基础 | BETWEEN 的常见用法

在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。 它包含这两个边界值。BETWEEN操作符常用于WHERE子句中,以便选取某个范围内的值。 以下是BETWEEN的一些常见用法: 选取介于两个值之间的值: 使用 BETWEEN来…

批处理优化

1.4、总结 Key的最佳实践 固定格式:[业务名]:[数据名]:[id]足够简短:不超过44字节不包含特殊字符 Value的最佳实践: 合理的拆分数据,拒绝BigKey选择合适数据结构Hash结构的entry数量不要超过1000设置合理的超时时间 2、批处理优…

​【收录 Hello 算法】第 3 章 数据结构

第 3 章 数据结构 Abstract 数据结构如同一副稳固而多样的框架。 它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 本章内容 3.1 数据结构分类3.2 基本数据类型3.3 数字编码 *3.4 字符编码 *3.5 小结

课时115:sed命令_进阶实践_高阶用法2

2.2.4 高阶用法2 学习目标 这一节,我们从 暂存实践、其他实践、小结 三个方面来学习。 暂存实践 简介 我们可以在缓存空间和暂存空间中进行数据的简单读取,还可以对数据进行一些复杂性的编辑操作常见的高阶命令P 打印模式空间开端至\n内容&#xff0…

Unable to find assembler. Install ‘yasm‘ or ‘nasm.‘ To build without

Unable to find assembler. Install yasm or nasm. To build without 一、概述二、解决办法 一、概述 系统:Ubuntu 22.04 在编译一个项目的时候提示我汇编器有一个问题,一个ysam 或者 nasm未安装 二、解决办法 sudo apt install yasm

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

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

【Leetcode每日一题】 分治 - 排序数组(难度⭐⭐)(69)

1. 题目解析 题目链接:912. 排序数组 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 归并排序(Merge Sort)是一种采用“分而治之”(Divide and Conquer)策略…

HNU-人工智能-实验3-贝叶斯分类器

人工智能-实验3 计科210x 甘晴void 【感悟】本实验值得自己完成一遍 文章目录 人工智能-实验3一、实验目的二、实验平台三、实验内容3.0 基础知识3.1 条件概率(选择题)3.2 贝叶斯公式(选择题)3.3 朴素贝叶斯分类算法流程3.3.1 算…

【华为】AC三层旁挂直接转发

【华为】AC三层旁挂直接转发 实验需求实验拓扑配置AC和AP二层通信ACLSW1LSW2AP2获取到的管理地址AP3获取到的管理地址 AP上线配置WLAN业务ACLSW1(作DHCP地址池)业务成功下发 访问公网(NAT)LSW1AR1 配置文档ACLSW1LSW2AR1 实验需求…

原来spring也可以AI

最近大模型是相当的火,尤其是在自然语言处理(NLP)、图像识别、语音识别等领域的应用,那对于工程同学来说应该如何接住这波破天的富贵呢? 想啥来啥,前段时间LangChain给我们整了一套钢铁战甲,让…

【机器学习】Ctrl-Adapter:视频生成领域的革新者

Ctrl-Adapter:视频生成领域的革新者 一、ControlNets的挑战与Ctrl-Adapter的应运而生二、Ctrl-Adapter的技术原理与实现三、Ctrl-Adapter的应用实例与性能表现四、Ctrl-Adapter的意义与未来展望 随着人工智能技术的飞速发展,图像与视频生成领域正经历着前…

Java性能优化(三):HashMap的设计与优化

作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤️觉得文章还…

《动手学深度学习》V2(00-10)

文章目录 一、学习目标二、环境搭建三、数据操作1、张量介绍2、运算符介绍3、广播介绍4、索引和切片5、节省内存6、课后练习实现 :fire: 四、数据预处理1、读取数据集2、处理缺失数据3、课后练习实现 :fire:①第一步:造数据②第二步 筛选遍历缺失值③第三步 统计降序…

arthas无法捕获到try catch了的异常怎么办呢?

本案例使用的arthas是最新版本3.7.2 要跟踪的代码: 1、arthas watch试下能不能捕获到 页面上请求 http://localhost:8080/exception发现捕获不了。 2、可以使用btrace捕获,能够捕获到 我本案例使用Eclipse编写btrace脚本 ,首先引入btrace的…