• 28-搭建Keepalived+LVS+Nginx高可用集群负载均衡


    搭建Keepalived+LVS+NGINX高可用集群负载均衡

    架构图

    搭建Keepalived+LVS

    为了搭建主备模式架构, 再创建一台192.168.247.139的虚拟机

    在138, 139上安装Keepalived, 并注册为系统服务,但是不用修改配置文件

    修改主LVS上的Keepalived配置文件

    vi /etc/keepalived/keepalived.conf
    

    配置文件

    1. ! Configuration File for keepalived
    2. global_defs {
    3. router_id LVS_138
    4. }
    5. vrrp_instance VI_1 {
    6. state MASTER
    7. interface ens33
    8. virtual_router_id 51
    9. priority 100
    10. advert_int 1
    11. authentication {
    12. auth_type PASS
    13. auth_pass 1111
    14. }
    15. virtual_ipaddress {
    16. 192.168.247.150
    17. }
    18. }
    19. # 配置集群地址访问的IP+端口 端口和Nginx保持一致, 都是80
    20. virtual_server 192.168.247.150 80 {
    21. # 健康检查的时间, 单位:秒
    22. delay_loop 6
    23. # 负载策略 轮询
    24. lb_algo rr
    25. # LVS模式 DR
    26. lb_kind DR
    27. # 会话持久化时间
    28. persistence_timeout 5
    29. # 协议
    30. protocol TCP
    31. # 负载均衡的真实服务器, 也就是Nginx的节点真实IP
    32. real_server 192.168.247.136 80{
    33. weight 1
    34. # 设置健康检查
    35. TCP_CHECK {
    36. # 检查端口 80
    37. connect_port 80
    38. # 超时时间 2s
    39. connect_timeout 2
    40. # 重试次数 2
    41. nb_get_retry 2
    42. # 间隔时间 3s
    43. delay_before_retry 3
    44. }
    45. }
    46. real_server 192.168.247.137 80 {
    47. weight 1
    48. TCP_CHECK {
    49. connect_port 80
    50. connect_timeout 2
    51. nb_get_retry 2
    52. delay_before_retry 3
    53. }
    54. }
    55. }

    清除之前的LVS配置

    ipvsadm -C
    

    重启Keepalived

    systemctl restart keepalived
    

    查看LVS映射表

    1. [root@localhost etc]# ipvsadm -Ln
    2. IP Virtual Server version 1.2.1 (size=4096)
    3. Prot LocalAddress:Port Scheduler Flags
    4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    5. TCP 192.168.247.150:80 rr persistent 5
    6. -> 192.168.247.136:80 Route 1 0 0
    7. -> 192.168.247.137:80 Route 1 0 0
    8. [root@localhost etc]#

    已经出现了配置

    修改备LVS上的Keepalived配置文件

    vi /etc/keepalived/keepalived.conf
    

    配置文件

    1. ! Configuration File for keepalived
    2. global_defs {
    3. router_id LVS_139
    4. }
    5. vrrp_instance VI_1 {
    6. state BACKUP
    7. interface ens33
    8. virtual_router_id 51
    9. priority 80
    10. advert_int 1
    11. authentication {
    12. auth_type PASS
    13. auth_pass 1111
    14. }
    15. virtual_ipaddress {
    16. 192.168.247.150
    17. }
    18. }
    19. virtual_server 192.168.247.150 80 {
    20. delay_loop 6
    21. lb_algo rr
    22. lb_kind DR
    23. persistence_timeout 5
    24. protocol TCP
    25. real_server 192.168.247.136 80{
    26. weight 1
    27. TCP_CHECK {
    28. connect_port 80
    29. connect_timeout 2
    30. nb_get_retry 2
    31. delay_before_retry 3
    32. }
    33. }
    34. real_server 192.168.247.137 80 {
    35. weight 1
    36. TCP_CHECK {
    37. connect_port 80
    38. connect_timeout 2
    39. nb_get_retry 2
    40. delay_before_retry 3
    41. }
    42. }
    43. }

    重启Keepalived

    systemctl restart keepalived
    

    查看LVS的映射表

    1. [root@localhost keepalived]# ipvsadm -Ln
    2. IP Virtual Server version 1.2.1 (size=4096)
    3. Prot LocalAddress:Port Scheduler Flags
    4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    5. TCP 192.168.247.150:80 rr persistent 5
    6. -> 192.168.247.136:80 Route 1 0 0
    7. -> 192.168.247.137:80 Route 1 0 0
    8. [root@localhost keepalived]#

    已经出现配置

    测试高可用

    访问测试

    可以访问

    测试Keepalived停止

    手动停止主LVS上的Keepalived

    systemctl stop keepalived
    

    再次访问

    已经自动切换到备LVS上了

    此时恢复主LVS

    systemctl start keepalived
    

    150重新绑定回主LVS节点

    测试Nginx停止

    现在访问的是master

    手动停止136上的Nginx

    ./nginx -s quit
    

    测试访问

    就只能访问到备用的Nginx了

    LVS的持久化过期时间已经过了,但是还是直接访问137节点了, 查看映射规则

    应为136已经被停止, 现在映射表只有137节点

    手动恢复136

    ./nginx
    

    映射表重新加载了136节点, 健康检查生效

    到此Keepalived+LVS+NGINX高可用集群负载均衡搭建完成~

  • 相关阅读:
    ctfshow web入门部分题目 (更新中)
    【C++/STL】:list容器的深度剖析及模拟实现
    nginx反向代理流程以及具体执行过程
    Rider 设置选中单词侧边高亮,去除警告建议高亮
    计算机毕业设计(附源码)python元江特色农产品售卖平台
    【模电实验】【精简版】【验证性实验——两级阻容耦合负反馈放大器实验】
    网络电视盒子哪个品牌好?测评工作室深入分析电视盒子排名
    数据结构——单链表
    Linux 下集成开发环境 – PyCharm介绍
    K_A08_002 基于 STM32等单片机驱动MAX1508模块按键控制直流电机正反转加减速启停
  • 原文地址:https://blog.csdn.net/flowerStream/article/details/126735120