Nginx(搭建高可用集群)

文章目录

1.基本介绍

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

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
shell 复制代码
#!/bin/bash
num=`ps -C nginx --no-header | wc -l`
if [ $num -eq 0 ];then
killall keepalived
fi
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
  • 这里是因为一旦停止主nginx,我们的脚本就会检测出异常,然后杀死keepalived的进程,然后将权重-20
  • 这时再访问,就只会访问到从Nginx了
7.注意事项和细节
1.注意事项
2.keepalived.conf 详解
shell 复制代码
#这里只注释要修改的地方
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
}
}
相关推荐
鹏大师运维2 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰3 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_604236674 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春4 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
AI智图坊4 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
杨了个杨89825 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
云计算磊哥@9 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步20159 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
极客先躯10 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java面试题总结10 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器