请选择 进入手机版 | 继续访问电脑版

关于使用 Keepalived实现Nginx的自动 重启及双主热备高可用题目

[复制链接]
查看91 | 回复12 | 2021-9-13 20:27:18 | 显示全部楼层 |阅读模式
目次

1、概述

之前我们利用 Keepalived实现了Nginx服务的双机主备高可用,但是有几个题目 没有办理 ,本日 一起探究 一下。

1)在双机主备机制中,Keepalived服务假如 宕了,会自动 启用备机举行 服务,但Nginx服务假如 负载过大宕了,假造 ip是不会指向备机的。

2)双机主备的特点是,只有1台机器在提供服务,备机在主机的Keepalived服务宕掉后才会提供服务,大大的造成了资源的浪费。

3)如今 比较盛行 租用云服务器去运营公司的产品,那云服务器支不支持假造 IP呢?

本日 我们就上述的三个题目 来讲解一下。

2、利用 Keepalived实现Nginx的自动 重启

2.1 借助Shell脚本,完成Nginx的重启

Keepalived不能直接启动Nginx,但可以实验 shell脚本,因此这里我们必要 借助Shell脚本启动Nginx。

在 /etc/keepalived 目次 下,新建一个脚本 check_nginx.sh,以下是脚本的具体 内容:

  1. #!/bin/bash
  2. # 执行查看Nginx进程的命令,并放在变量A中
  3. A=`ps -C nginx --no-header | wc -l`
  4. # 判断是否宕机,如果宕机尝试重启,如果重启不成功,则停止Keepalived
  5. if [ $A -eq 0 ];then
  6. /usr/local/nginx/sbin/nginx
  7. sleep 3
  8. if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
  9. killall keepalived
  10. fi
  11. fi
复制代码

脚本泉源 于网络

2.2 为脚本赋予运行权限

  1. # chmod +x /etc/keepalived/check_nginx.sh
复制代码

2.3 在Keepalived设置 文件中增长 设置

打开Keepalived设置 文件,# vi /etc/keepalived/keepalived.conf

修改设置 文件,增长 vrrp_script 和track_script的设置 ,设置 如下:

  1. global_defs {
  2. # 全局唯一的主机标识
  3. router_id server_a
  4. }
  5. vrrp_script check_nginx {
  6. script "/etc/keepalived/check_nginx.sh"
  7. interval 3 # 每隔3秒运行一次Shell脚本
  8. weight 10 # 脚本运行成功,权重加10
  9. }
  10. vrrp_instance VI_1 {
  11. # 标识是主节点还是备用节点,值为 MASTER 或 BACKUP
  12. state MASTER
  13. # 绑定的网卡
  14. interface ens33
  15. # 虚拟路由id,保证主备节点是一致的
  16. virtual_router_id 51
  17. # 权重
  18. priority 100
  19. # 同步检查时间,间隔默认1秒
  20. advert_int 1
  21. # 认证授权的密码,所有主备需要一样
  22. authentication {
  23. auth_type PASS
  24. auth_pass 1111
  25. }
  26. track_script {
  27. check_nginx
  28. }
  29. # 虚拟IP
  30. virtual_ipaddress {
  31. 192.168.1.88
  32. }
  33. }
复制代码

2.4 重启Keepalived服务

重启后,发现,Nginx停掉后,很快会自动 启动。

3、双主热备的搭建

3.1 双主热备概述

由于双机主备机制,每次只会由一台服务器对外提供服务,且主备机的设置 是雷同 的,因此极大地造成了资源的浪费。

双主热备则办理 了这个题目 ,双主热备的原理是两台服务器利用 Keepalived互为主备,因此必要 两个假造 IP,再利用 DNS轮询的设置 ,让一个域名按轮询的方式分别路由到两个假造 IP上,终极 达到高可用的目标 。

3.2 场景阐明

假造 IP1:192.168.1.88

假造 IP2:192.168.1.66

A服务器IP(主):192.168.1.144

B服务器IP(备):192.168.1.22

3.3 修改A服务器设置

设置 如下:

  1. ! Configuration File for keepalived
  2. global_defs {
  3. # 全局唯一的主机标识
  4. router_id server_a
  5. }
  6. vrrp_instance VI_1 {
  7. # 标识是主节点还是备用节点,值为 MASTER 或 BACKUP
  8. state MASTER
  9. # 绑定的网卡
  10. interface ens33
  11. # 虚拟路由id,保证主备节点是一致的
  12. virtual_router_id 51
  13. # 权重
  14. priority 100
  15. # 同步检查时间,间隔默认1秒
  16. advert_int 1
  17. # 认证授权的密码,所有主备需要一样
  18. authentication {
  19. auth_type PASS
  20. auth_pass 1111
  21. }
  22. # 虚拟IP
  23. virtual_ipaddress {
  24. 192.168.1.88
  25. }
  26. }
  27. vrrp_instance VI_2 {
  28. # 标识是主节点还是备用节点,值为 MASTER 或 BACKUP
  29. state BACKUP
  30. # 绑定的网卡
  31. interface ens33
  32. # 虚拟路由id,保证主备节点是一致的
  33. virtual_router_id 52
  34. # 权重
  35. priority 80
  36. # 同步检查时间,间隔默认1秒
  37. advert_int 1
  38. # 认证授权的密码,所有主备需要一样
  39. authentication {
  40. auth_type PASS
  41. auth_pass 1111
  42. }
  43. # 虚拟IP
  44. virtual_ipaddress {
  45. 192.168.1.66
  46. }
  47. }
复制代码

3.4 修改B服务器设置

设置 如下:

  1. ! Configuration File for keepalived
  2. global_defs {
  3. router_id server_b
  4. }
  5. vrrp_instance VI_1 {
  6. # 设置为备机
  7. state BACKUP
  8. interface ens33
  9. virtual_router_id 51
  10. # 权重设置的要比主机低
  11. priority 90
  12. advert_int 1
  13. authentication {
  14. auth_type PASS
  15. auth_pass 1111
  16. }
  17. # 虚拟IP需要主备设置成一样
  18. virtual_ipaddress {
  19. 192.168.1.88
  20. }
  21. }
  22. vrrp_instance VI_2 {
  23. # 设置为主机
  24. state MASTER
  25. interface ens33
  26. virtual_router_id 52
  27. # 权重设置的要比主机低
  28. priority 100
  29. advert_int 1
  30. authentication {
  31. auth_type PASS
  32. auth_pass 1111
  33. }
  34. # 虚拟IP需要主备设置成一样
  35. virtual_ipaddress {
  36. 192.168.1.66
  37. }
  38. }
复制代码

3.5 重启两台服务器的Keepalived

重启Keepalived即可。

3.6 设置DNS轮询

接洽 网络运营商办理 。

4、云服务器的负载平衡

如今 ,很多公司都会选择租用云服务器运行本身 的产品,由于 更划算、更稳固 ,有专业职员 负责运维。

但利用 了云服务器,就要受云服务运营商的限定 。

就拿假造 IP这个事儿来说,一些云服务运营商就是不支持的。

假如 不支持假造 IP,则Keepalived这个方案就只能放弃了。

但即使Keepalived用不了,Nginx的高可用还是有办理 方案的,很多云服务商都已经推出了本身 的负载平衡 服务(比方 :阿里云的负载平衡 SLB 和 腾讯云的负载平衡 CLB)。我们直接租用就好了,不必要 我们本身 去设置 。

5、综述

本日 大概聊了一下KeepAlived自动 重启Nginx,Keepalived的双主热备高可用的搭建,以及云服务器负载平衡 的办理 方案,渴望 能对大家有所帮助。

到此这篇关于利用 Keepalived实现Nginx的自动 重启及双主热备高可用的文章就先容 到这了,更多干系 Keepalived实现Nginx的自动 重启内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 流动532 | 2021-9-20 22:03:44 | 显示全部楼层
admin楼主很有激情啊!
回复

使用道具 举报

avatar 阳光469 | 2021-9-26 17:19:12 | 显示全部楼层
管它三七二十一!
回复

使用道具 举报

avatar 天蝎孤星等 | 2021-9-28 16:48:39 | 显示全部楼层
这一年啥事没干,光研究admin楼主的帖子了!
回复

使用道具 举报

avatar 凡八哥 | 2021-10-1 22:09:41 | 显示全部楼层
admin楼主,您提前出院了?
回复

使用道具 举报

avatar 123457710 | 2021-10-2 18:58:55 | 显示全部楼层
帖子很有深度!
回复

使用道具 举报

avatar 掘金入眠刈 | 2021-10-4 00:55:33 | 显示全部楼层
楼上是GG还是MM啊?
回复

使用道具 举报

avatar Alysia | 2021-10-15 22:11:26 | 显示全部楼层
关注一下!
回复

使用道具 举报

谢谢admin楼主的分享!
回复

使用道具 举报

admin楼主,替我问候您主治大夫!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则