• Linux 系统中部署 LNMP 高可用负载均衡架构集群实现动态博客


    (一)设计思路

    高可用:keepalived 解决方案

    负载均衡:(lvs)DR做轮询,需要一个调度器,后端节点两个(部署nginx动态博客),通过一个vip去访问动态博客

      后端节点需要部署动态博客作为资源供客户访问。

      调度器做keepalived(dr),给调度器做一个备节点,让他俩互为主备,避免资源浪费。

    这样的话就需要四台物理机,两台主备调度器,两台realserver。

     (二)部署过程

    (1)调度器上的部署

    1. 两台调度器下载keepalived:

    yum install -y keepalived

    2.编辑配置文件,让两台调度器互为主备

    [root@node1 keepalived]# cat /etc/keepalived/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
    #     acassen@firewall.loc
    #     failover@firewall.loc
    #     sysadmin@firewall.loc
       }
    #   notification_email_from Alexandre.Cassen@firewall.loc
    #   smtp_server 192.168.200.1
    #   smtp_connect_timeout 30
    #   router_id LVS_DEVEL
    #   vrrp_skip_check_adv_addr
    #   vrrp_strict
    #   vrrp_garp_interval 0
    #   vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.42.200
        }
    }
    vrrp_instance VI_2 {
        state BACKUP
        interface ens33
        virtual_router_id 52
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 2222
        }   
        virtual_ipaddress {
            192.168.42.100
        }
    }
    virtual_server 192.168.42.200 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.42.172 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
             state_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } virtual_server 192.168.42.200 80 { delay_loop 6 lb_algo rr lb_kind DR protocol TCP real_server 192.168.42.173 80 { weight 1 HTTP_GET { url { path / state_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }

    [root@node2 ~]# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived

    global_defs {
       notification_email {
    #     acassen@firewall.loc
    #     failover@firewall.loc
    #     sysadmin@firewall.loc
       }
    #   notification_email_from Alexandre.Cassen@firewall.loc
    #   smtp_server 192.168.200.1
    #   smtp_connect_timeout 30
    #   router_id LVS_DEVEL
    #   vrrp_skip_check_adv_addr
    #   vrrp_strict
    #   vrrp_garp_interval 0
    #   vrrp_gna_interval 0
    }

    vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        virtual_router_id 51
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.42.200
        }
    }
    vrrp_instance VI_2 {
        state MASTER
        interface ens33
        virtual_router_id 52
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 2222
        }   
        virtual_ipaddress {
            192.168.42.100
        }
    }
    virtual_server 192.168.42.200 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.42.172 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
             state_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    virtual_server 192.168.42.200 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.42.173 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
                  state_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }

    3.调度器重启keepalived(可以做个测试,查看vip的迁移)

    systemctl restart keepalived

    (2)realserver部署

    1. realserver部署DR

    [root@node3 ~]# cd /proc/sys/net/ipv4/conf/
    [root@node3 conf]# ls
    all              calib2dc35d78a1  docker0    lo
    cali748bf682dd1  calib6602a4140d  ens33      tunl0
    cali8e151c6d769  default          flannel.1
    [root@node3 conf]# cd all
    [root@node3 all]# ls
    accept_local         disable_policy       proxy_arp_pvlan
    accept_redirects     disable_xfrm         route_localnet
    accept_source_route  force_igmp_version   rp_filter
    arp_accept           forwarding           secure_redirects
    arp_announce         log_martians         send_redirects
    arp_filter           mc_forwarding        shared_media
    arp_ignore           medium_id            src_valid_mark
    arp_notify           promote_secondaries  tag
    bootp_relay          proxy_arp
    [root@node3 all]# echo 1 > arp_ignore  
    [root@node3 all]# echo 2 > arp_announce  
    [root@node3 all]# cd ..
    [root@node3 conf]# ls
    all              calib2dc35d78a1  docker0    lo
    cali748bf682dd1  calib6602a4140d  ens33      tunl0
    cali8e151c6d769  default          flannel.1
    [root@node3 conf]# cd lo
    [root@node3 lo]# ls
    accept_local         disable_policy       proxy_arp_pvlan
    accept_redirects     disable_xfrm         route_localnet
    accept_source_route  force_igmp_version   rp_filter
    arp_accept           forwarding           secure_redirects
    arp_announce         log_martians         send_redirects
    arp_filter           mc_forwarding        shared_media
    arp_ignore           medium_id            src_valid_mark
    arp_notify           promote_secondaries  tag
    bootp_relay          proxy_arp
    [root@node3 lo]# echo 2 > arp_announce  
    [root@node3 lo]# echo 1 > arp_ignore  
    [root@node3 lo]# ifconfig ens33:0 192.168.42.200/32 broadcast 192.168.42.200 up
    [root@node3 lo]# route add -host 192.168.42.200 dev ens33:0[root@node3 lo]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.42.200  0.0.0.0         255.255.255.255 UH    0      0        0 ens33

    2. 部署LNMP架构上线动态博客(上一篇博客有就不再赘述了)

    (3)浏览器访问vip:

    http://192.168.42.200/wp-admin/install.php

  • 相关阅读:
    Windows server 2016 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同。”
    Windows Server 2016 辅助域控制器搭建
    Windows Server 2016 主域控制器搭建
    Net Framework 4.7.2 覆盖 Net Framework 4.5 解决办法
    SQL SERVER 2012更改默认的端口号为1772
    Windows下彻底卸载删除SQL Serever2012
    在Windows Server2016中安装SQL Server2016
    SQL Server 创建索引
    C#控制台或应用程序中两个多个Main()方法的设置
    Icon cache rebuilding with Delphi(Delphi 清除Windows 图标缓存源代码)
  • 原文地址:https://www.cnblogs.com/daisyyang/p/11117322.html
Copyright © 2020-2023  润新知