image.png

配置

image.png

vi /etc/hosts
127.0.0.1 LVS_DEVEL
image.png

  • 修改 /etc/keepalived

注意虚拟ip 地支要和 主机ip地址在一个网段
主机ip : 192.168.223.131
虚拟ip : 192.168.223.50
image.png
主节点配置

  1. global_defs {
  2. notification_email {
  3. acassen@firewall.loc
  4. failover@firewall.loc
  5. sysadmin@firewall.loc
  6. }
  7. notification_email_from Alexandre.Cassen@firewall.loc
  8. smtp_ server 192.168.17.129
  9. smtp_connect_timeout 30
  10. router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
  11. }
  12. vrrp_script chk_http_ port {
  13. script "/usr/local/src/nginx_check.sh"
  14. interval 2 # (检测脚本执行的间隔)2s
  15. weight 2 #权重,如果这个脚本检测为真,服务器权重+2
  16. }
  17. vrrp_instance VI_1 {
  18. state MASTER # 备份服务器上将MASTER 改为BACKUP
  19. interface ens33 //网卡名称
  20. virtual_router_id 51 # 主、备机的virtual_router_id必须相同
  21. priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小
  22. advert_int 1 #每隔1s发送一次心跳
  23. authentication { # 校验方式, 类型是密码,密码1111
  24. auth type PASS
  25. auth pass 1111
  26. }
  27. virtual_ipaddress { # 虛拟ip
  28. 192.168.223.50 // VRRP H虛拟ip地址
  29. }
  30. }

从节点配置

  1. global_defs {
  2. notification_email {
  3. acassen@firewall.loc
  4. failover@firewall.loc
  5. sysadmin@firewall.loc
  6. }
  7. notification_email_from Alexandre.Cassen@firewall.loc
  8. smtp_ server 192.168.17.129
  9. smtp_connect_timeout 30
  10. router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
  11. }
  12. vrrp_script chk_http_ port {
  13. script "/usr/local/src/nginx_check.sh"
  14. interval 2 # (检测脚本执行的间隔)2s
  15. weight 2 #权重,如果这个脚本检测为真,服务器权重+2
  16. }
  17. vrrp_instance VI_1 {
  18. state BACKUP # 备份服务器上将MASTER 改为BACKUP
  19. interface ens33 //网卡名称
  20. virtual_router_id 51 # 主、备机的virtual_router_id必须相同
  21. priority 90 #主、备机取不同的优先级,主机值较大,备份机值较小
  22. advert_int 1 #每隔1s发送一次心跳
  23. authentication { # 校验方式, 类型是密码,密码1111
  24. auth type PASS
  25. auth pass 1111
  26. }
  27. virtual_ipaddress { # 虛拟ip
  28. 192.168.223.50 // VRRP H虛拟ip地址
  29. }
  30. }

image.png

  1. #! /bin/bash
  2. A=`ps -C nginx -no-header | wc - 1`
  3. if [ $A -eq 0];then
  4. /usr/local/nginx/sbin/nginx
  5. sleep 2
  6. if [`ps -C nginx --no-header| wc -1` -eq 0 ];then
  7. killall keepalived
  8. fi
  9. fi

image.png
启动nginx
启动keepalived
systemctl start keepalived.service