zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    table布局与div布局
    HTML一般标签
    jquery
    PDO对象
    分页例题
    投票练习
    封装 链接数据库类
    访问数据方法
    面相对象多态
    面向对象
  • 原文地址:https://www.cnblogs.com/daisyyang/p/11117322.html
Copyright © 2011-2022 走看看