• haproxy+keepalived


    主机名IP角色虚拟IP
    node1192.168.164.11192.168.164.10
    node2192.168.164.12
    node3192.168.164.20后端
    node4192.168.164.21
    node5192.168.164.22

    1、安装HAproxy、配置日志 --- 查看之前章节

    配置文件

    1. global
    2. log 127.0.0.1 local0 info
    3. maxconn 4096
    4. user nobody
    5. group nobody
    6. daemon
    7. nbproc 1
    8. pidfile /usr/local/haproxy/logs/haproxy.pid
    9. defaults
    10. mode http
    11. retries 3
    12. timeout connect 5s
    13. timeout client 30s
    14. timeout server 30s
    15. timeout check 2s
    16. listen admin_stats
    17. bind 0.0.0.0:19088
    18. mode http
    19. log 127.0.0.1 local0 err
    20. stats refresh 30s
    21. stats uri /haproxy-status
    22. stats realm welcome login\ Haproxy
    23. stats auth admin:xxxxxx
    24. stats hide-version
    25. stats admin if TRUE
    26. frontend www
    27. bind 192.168.66.10:80
    28. mode http
    29. option httplog
    30. option forwardfor
    31. log global
    32. acl host_www hdr_dom(host) -i www.zb.com
    33. acl host_static hdr_dom(host)-i static.zb.com
    34. acl host_video hdr_dom(host) -i
    35. video.zb.com
    36. use_backend server_www if host_www
    37. use_backend server_static if host_static
    38. use_backend server_video if host_video
    39. backend server_www --- 其他两个后台服务器参照此配置,(只需修改IP)
    40. mode http
    41. option redispatch
    42. option abortonclose
    43. balance roundrobin
    44. option httpchk GET /index.jsp
    45. server webapp1 192.168.164.20:80 weight 6
    46. check inter 2000 rise 2 fall 3

    安装keepalived --- 参考之前文章

    配置主备keepalived服务器

    在node1主机:keepalived.conf文件

    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.200.1
    9. smtp_connect_timeout 30
    10. router_id HAProxy_DEVEL
    11. }
    12. vrrp_script check_haproxy {
    13. script "killall -0 haproxy" #-0 haproxy"仅仅监测HAProxy服务状态
    14. interval 2
    15. weight 21
    16. }
    17. vrrp_instance HAProxy_HA {
    18. state BACKUP
    19. interface eth0
    20. virtual_router_id 80
    21. priority 100
    22. advert_int 2
    23. nopreempt #不抢占模式,只在优先级高的机器上设置即可,优先级低的机器不设置
    24. authentication {
    25. auth_type PASS
    26. auth_pass 1111
    27. }
    28. notify_master "/etc/keepalived/mail_notify.py master "
    29. notify_backup "/etc/keepalived/mail_notify.py backup"
    30. notify_fault "/etc/keepalived/mail_notify.py falut"
    31. track_script {
    32. check_haproxy
    33. }
    34. virtual_ipaddress {
    35. 192.168.66.10/24 dev eth0 #HAProxy的对外服务IP,即VIP
    36. }
    37. }

    使用python编辑一个发送邮件的脚本 

    将keepalived.conf文件和发送邮件的脚本文件发送到备用主机node2上。

    此时就完成了HAproxy+keepalived的高可用配置。

  • 相关阅读:
    AI DevOps | ChatGPT 与研发效能、效率提升(中)
    设计模式(12)状态模式
    浅谈Javascript单线程和事件循环
    C语言——流程控制
    YRCloudFile V6.9.0 加速企业在大数据应用技术创新
    HTML~
    华为低代码TinyEngine ——flow 图元编排设计器
    GLSL声明数组
    消息队列-RabbitMQ(二)
    ES6——对象、数组、字符串新增API
  • 原文地址:https://blog.csdn.net/mantangjojo/article/details/127659764