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
复制代码
#!/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 详解
复制代码
#这里只注释要修改的地方
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
}
}
相关推荐
用户0328472220701 天前
如何搭建本地yum源(上)
运维
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw