日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

【原創(chuàng)】學(xué)習(xí)日記5:nginx負(fù)載均衡(三)2012.0

系統(tǒng) 2607 0

接上文 ? 學(xué)習(xí)日記4:nginx負(fù)載均衡(二)2012.01.08

......

到此,整體工作還差一個備用nginx proxy,其中涉及到keepalived,做心跳。

?

【原創(chuàng)】學(xué)習(xí)日記5:nginx負(fù)載均衡(三)2012.01.10 nginx+keepalievd,實(shí)現(xiàn)負(fù)載均衡和故障點(diǎn)切換。keepalived雙機(jī)熱備。

黃線以上做完了。

?

?

本次主要做的是1加一臺從nginx_proxy ,暫且命令為front2(為從)。之前的nginx_proxy命令為front(為主)

?

1 在主nginx上配置keepalived。

      cd /usr/local/src/


      
        wget
      
       http:
      
        //
      
      
        keepalived.org/software/keepalived-1.2.7.tar.gz
      
      
        tar
      
       -xzvf keepalived-
      
        1.2
      
      .
      
        7
      
      .
      
        tar
      
      
        .gz

cd keepalived
      
      -
      
        1.2
      
      .
      
        7
      
      /
      
        

.
      
      /configure --prefix=/usr/local/keepalived
    

這時候會報(bào)錯的!

      
        configure: error: 

  
      
      !!! OpenSSL is not properly installed on your system. !!!

  !!! Can not include OpenSSL headers files.            !!!
    

缺少gcc,安裝下面擴(kuò)展

      
        yum
      
      
        install
      
      
        gcc
      
      
        gcc
      
      -c++ autoconf automake
    

繼續(xù)編譯,下面還會報(bào)錯,類似這樣的錯誤。

?

      
        make
      
      : *** No targets specified and no makefile found.  Stop.
    
      configure: error: ! OpenSSL is not properly installed on your system. configure: error: !
    

?

?對此,我們安裝以下擴(kuò)展即可解決。

      
        yum
      
       -y 
      
        install
      
       openssl-devel
    
      
        yum
      
       -y 
      
        install
      
       popt-devel
    

?

在編譯

      ./configure --prefix=/usr/local/keepalived
    

?

這時候,會出現(xiàn)下面的結(jié)果,這個結(jié)果就表明是ok的。到此你的keepalived安裝是成功的!

      
        Keepalived configuration


      
      ------------------------
      
        

Keepalived version       : 
      
      
        1.2
      
      .
      
        7
      
      
        

Compiler                 : 
      
      
        gcc
      
      
        

Compiler flags           : 
      
      -g -
      
        O2

Extra Lib                : 
      
      -lpopt -lssl -
      
        lcrypto 

Use IPVS Framework       : Yes

IPVS 
      
      
        sync
      
      
         daemon support : Yes

IPVS use libnl           : No

Use VRRP Framework       : Yes

Use VRRP VMAC            : Yes

SNMP support             : No

Use Debug flags          : No
      
    

?

繼續(xù)下面的操作

?

      
        make
      
      
        make
      
      
        install
      
      
        cp
      
       /usr/local/keepalived/sbin/keepalived /usr/sbin/


      
        cp
      
       /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/


      
        cp
      
       /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/


      
        mkdir
      
       /etc/
      
        keepalived

cd 
      
      /etc/
      
        keepalived

vim keepalived.conf
      
    

?

keepalived.conf配置文件比較重要

front1 :主nginx的配置文件如下:

      ! Configuration File 
      
        for
      
      
         keepalived

global_defs {

   router_id LVS_01

}

vrrp_instance VI_1 {

    state MASTER  #master 主nginx

    interface eth1

    virtual_router_id 
      
      
        51
      
      
        

    mcast_src_ip 
      
      
        192.168
      
      .
      
        65.133 #本機(jī)ip地址也即主nginx地址
      
      
        

    priority 
      
      
        100
      
      
        

    advert_int 
      
      
        1
      
      
        

    authentication {

        auth_type PASS

        auth_pass 
      
      
        1111
      
      
        

    }

    virtual_ipaddress {

        
      
      
        192.168
      
      .
      
        65.128
      
      
         #vip 虛擬出來的ip地址 要求在內(nèi)網(wǎng)中未被使用

    }

}
      
    

?

到此,主nginx配置完成。同樣的操作,在從nginx上也配置一遍。

不過從nginx的配置文件如下:

      [root@localhost nginx]# vim /etc/keepalived/
      
        keepalived.conf 




      
      ! Configuration File 
      
        for
      
      
         keepalived

global_defs {

   router_id LVS_01

}

vrrp_instance VI_1 {

    state BACKUP #slave 

    interface eth2

    virtual_router_id 
      
      
        51
      
      
        

    mcast_src_ip 
      
      
        192.168
      
      .
      
        65.137 #slave ip
      
      
        

    priority 
      
      
        80
      
      
        

    advert_int 
      
      
        1
      
      
        

    authentication {

        auth_type PASS

        auth_pass 
      
      
        1111
      
      
        

    }

    virtual_ipaddress {

        
      
      
        192.168
      
      .
      
        65.128
      
      
         #vip

    }

}
      
    

?

重啟兩邊的keepalived服務(wù):

      
        [root@localhost conf.d]# service keepalived restart

Stopping keepalived:                                       [FAILED]

Starting keepalived:                                       [  OK  ]
      
    

主nginx上,用

      
        [root@localhost conf.d]# ip a


      
      
        1
      
      : lo: <LOOPBACK,UP,LOWER_UP> mtu 
      
        16436
      
      
         qdisc noqueue state UNKNOWN 

    link
      
      /loopback 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
       brd 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      
        

    inet 
      
      
        127.0
      
      .
      
        0.1
      
      /
      
        8
      
      
         scope host lo

    inet6 ::
      
      
        1
      
      /
      
        128
      
      
         scope host 

       valid_lft forever preferred_lft forever


      
      
        2
      
      : eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 
      
        1500
      
       qdisc pfifo_fast state UP qlen 
      
        1000
      
      
        

    link
      
      /ether 
      
        00
      
      :0c:
      
        29
      
      :
      
        20
      
      :e9:
      
        20
      
      
         brd ff:ff:ff:ff:ff:ff

    inet 
      
      
        192.168
      
      .
      
        65.133
      
      /
      
        24
      
       brd 
      
        192.168
      
      .
      
        65.255
      
      
         scope global eth1

    inet 
      
      
        192.168
      
      .
      
        65.128
      
      /
      
        32
      
      
         scope global eth1

    inet6 fe80::20c:29ff:fe20:e920
      
      /
      
        64
      
      
         scope link 

       valid_lft forever preferred_lft forever
      
    

?到此,我們的vip算是真正的綁定上了。

查看keepalived的日志:

      root@localhost conf.d]# 
      
        tail
      
       -f /var/log/
      
        messages 

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        06
      
       localhost Keepalived_healthcheckers[
      
        3355
      
      
        ]: Using LinkWatch kernel netlink reflector...

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        06
      
       localhost Keepalived_vrrp[
      
        3356
      
      ]: Configuration is using : 
      
        34824
      
      
         Bytes

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        06
      
       localhost Keepalived_vrrp[
      
        3356
      
      
        ]: Using LinkWatch kernel netlink reflector...

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        06
      
       localhost Keepalived_vrrp[
      
        3356
      
      ]: VRRP sockpool: [ifindex(
      
        2
      
      ), proto(
      
        112
      
      ), fd(
      
        11
      
      ,
      
        12
      
      
        )]

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        06
      
       localhost Keepalived_vrrp[
      
        3356
      
      
        ]: VRRP_Instance(VI_1) Transition to MASTER STATE

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        07
      
       localhost Keepalived_vrrp[
      
        3356
      
      
        ]: VRRP_Instance(VI_1) Entering MASTER STATE

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        07
      
       localhost Keepalived_vrrp[
      
        3356
      
      
        ]: VRRP_Instance(VI_1) setting protocol VIPs.

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        07
      
       localhost avahi-daemon[
      
        1765
      
      ]: Registering new address record 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
      
         on eth1.IPv4.

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        07
      
       localhost Keepalived_healthcheckers[
      
        3355
      
      ]: Netlink reflector reports IP 
      
        192.168
      
      .
      
        65.128
      
      
         added

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        07
      
       localhost Keepalived_vrrp[
      
        3356
      
      ]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
      
        

Jan  
      
      
        9
      
      
        18
      
      :
      
        53
      
      :
      
        12
      
       localhost Keepalived_vrrp[
      
        3356
      
      ]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
    

從nginx上,同樣

      
        [root@localhost nginx]# ip a


      
      
        1
      
      : lo: <LOOPBACK,UP,LOWER_UP> mtu 
      
        16436
      
      
         qdisc noqueue state UNKNOWN 

    link
      
      /loopback 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
       brd 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      
        

    inet 
      
      
        127.0
      
      .
      
        0.1
      
      /
      
        8
      
      
         scope host lo

    inet6 ::
      
      
        1
      
      /
      
        128
      
      
         scope host 

       valid_lft forever preferred_lft forever


      
      
        2
      
      : eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 
      
        1500
      
       qdisc pfifo_fast state UP qlen 
      
        1000
      
      
        

    link
      
      /ether 
      
        00
      
      :0c:
      
        29
      
      :a7:
      
        81
      
      
        :c7 brd ff:ff:ff:ff:ff:ff

    inet 
      
      
        192.168
      
      .
      
        65.137
      
      /
      
        24
      
       brd 
      
        192.168
      
      .
      
        65.255
      
      
         scope global eth2

    inet6 fe80::20c:29ff:fea7:81c7
      
      /
      
        64
      
      
         scope link 

       valid_lft forever preferred_lft forever
      
    

我們發(fā)現(xiàn)并沒有綁定vip 128

同時;

      [root@localhost nginx]# 
      
        tail
      
       -f /var/log/
      
        messages 

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      
        ]: Registering Kernel netlink reflector

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      
        ]: Registering Kernel netlink command channel

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: Opening 
      
        file
      
      
        '
      
      
        /etc/keepalived/keepalived.conf
      
      
        '
      
      
        .

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Opening 
      
        file
      
      
        '
      
      
        /etc/keepalived/keepalived.conf
      
      
        '
      
      
        .

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: Configuration is using : 
      
        34822
      
      
         Bytes

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Configuration is using : 
      
        4821
      
      
         Bytes

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: Using LinkWatch kernel netlink reflector...

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: VRRP_Instance(VI_1) Entering BACKUP STATE

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: VRRP sockpool: [ifindex(
      
        2
      
      ), proto(
      
        112
      
      ), fd(
      
        11
      
      ,
      
        12
      
      
        )]

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Using LinkWatch kernel netlink reflector...
    

?

貌似從nginx似乎出了什么問題,先不著急。

這時候我們停止掉主nginx的服務(wù),再看看效果怎么樣!

      
        killall
      
       nginx
    

再觀察從nginx的狀態(tài)變化

      [root@localhost nginx]# 
      
        tail
      
       -f /var/log/
      
        messages 

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      
        ]: Registering Kernel netlink reflector

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      
        ]: Registering Kernel netlink command channel

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: Opening 
      
        file
      
      
        '
      
      
        /etc/keepalived/keepalived.conf
      
      
        '
      
      
        .

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Opening 
      
        file
      
      
        '
      
      
        /etc/keepalived/keepalived.conf
      
      
        '
      
      
        .

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: Configuration is using : 
      
        34822
      
      
         Bytes

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Configuration is using : 
      
        4821
      
      
         Bytes

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: Using LinkWatch kernel netlink reflector...

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: VRRP_Instance(VI_1) Entering BACKUP STATE

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: VRRP sockpool: [ifindex(
      
        2
      
      ), proto(
      
        112
      
      ), fd(
      
        11
      
      ,
      
        12
      
      
        )]

Jan  
      
      
        9
      
      
        19
      
      :
      
        16
      
      :
      
        25
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      
        ]: Using LinkWatch kernel netlink reflector...

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        33
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: VRRP_Instance(VI_1) Transition to MASTER STATE

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        34
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: VRRP_Instance(VI_1) Entering MASTER STATE

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        34
      
       localhost Keepalived_vrrp[
      
        22421
      
      
        ]: VRRP_Instance(VI_1) setting protocol VIPs.

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        34
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth2 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
      
        

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        34
      
       localhost avahi-daemon[
      
        1810
      
      ]: Registering new address record 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
      
         on eth2.IPv4.

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        34
      
       localhost Keepalived_healthcheckers[
      
        22420
      
      ]: Netlink reflector reports IP 
      
        192.168
      
      .
      
        65.128
      
      
         added

Jan  
      
      
        9
      
      
        19
      
      :
      
        17
      
      :
      
        39
      
       localhost Keepalived_vrrp[
      
        22421
      
      ]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth2 
      
        for
      
      
        192.168
      
      .
      
        65.128
      
    

從第33秒后發(fā)現(xiàn),備用nginx已經(jīng)轉(zhuǎn)為master狀態(tài)。

再看

      
        [root@localhost nginx]# ip a


      
      
        1
      
      : lo: <LOOPBACK,UP,LOWER_UP> mtu 
      
        16436
      
      
         qdisc noqueue state UNKNOWN 

    link
      
      /loopback 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
       brd 
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      :
      
        00
      
      
        

    inet 
      
      
        127.0
      
      .
      
        0.1
      
      /
      
        8
      
      
         scope host lo

    inet6 ::
      
      
        1
      
      /
      
        128
      
      
         scope host 

       valid_lft forever preferred_lft forever


      
      
        2
      
      : eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 
      
        1500
      
       qdisc pfifo_fast state UP qlen 
      
        1000
      
      
        

    link
      
      /ether 
      
        00
      
      :0c:
      
        29
      
      :a7:
      
        81
      
      
        :c7 brd ff:ff:ff:ff:ff:ff

    inet 
      
      
        192.168
      
      .
      
        65.137
      
      /
      
        24
      
       brd 
      
        192.168
      
      .
      
        65.255
      
      
         scope global eth2

    inet 
      
      
        192.168
      
      .
      
        65.128
      
      /
      
        32
      
      
         scope global eth2

    inet6 fe80::20c:29ff:fea7:81c7
      
      /
      
        64
      
      
         scope link 

       valid_lft forever preferred_lft forever
      
    

發(fā)現(xiàn)沒有?vip飄過來了!

?

針對Keepalived的不足,用check_nginx.sh來監(jiān)控nginx進(jìn)程,實(shí)現(xiàn)真正意義上的負(fù)載均衡高可用.
此腳本思路其實(shí)也很簡單,即放置在后臺一直監(jiān)控nginx進(jìn)程;如進(jìn)程消失,嘗試重啟nginx,
如是失敗則立即停掉本機(jī)的keepalived服務(wù),讓另一臺負(fù)載均衡器接手.

      
        vi
      
       /shell/nginx_pid.
      
        sh
      
      
        

###################################################

#
      
      !/bin/
      
        bash


      
      
        while
      
      
         :

    
      
      
        do
      
      
        

    nginxpid
      
      =`
      
        ps
      
       -C nginx --no-header | 
      
        wc
      
       -
      
        l`



 
      
      
        if
      
       [ $nginxpid -eq 
      
        0
      
      
         ]

   
      
      
        then
      
      

   /usr/local/nginx-
      
        0.8
      
      .
      
        53
      
      /sbin/
      
        nginx

   
      
      
        sleep
      
      
        5
      
      
        if
      
       [ $nginxpid -eq 
      
        0
      
      
         ]

    
      
      
        then
      
      

    /etc/init.d/
      
        keepalived stop

    
      
      
        fi
      
      
        fi
      
      
        sleep
      
      
        5
      
      
        done
      
      
        

###################################################
      
    

?

?

我們?nèi)匀豢梢岳^續(xù)訪問我們的站點(diǎn)。至此。故障點(diǎn)切換宣告結(jié)束。

?

?

?

?

【原創(chuàng)】學(xué)習(xí)日記5:nginx負(fù)載均衡(三)2012.01.10 nginx+keepalievd,實(shí)現(xiàn)負(fù)載均衡和故障點(diǎn)切換。keepalived雙機(jī)熱備。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 长汀县| 农安县| 彭阳县| 西乌| 湘潭县| 哈尔滨市| 云林县| 裕民县| 海南省| 江门市| 宝山区| 包头市| 平安县| 牡丹江市| 芮城县| 屯昌县| 昭通市| 淮滨县| 佳木斯市| 西宁市| 屏东市| 武安市| 西丰县| 五莲县| 理塘县| 仪陇县| 和政县| 环江| 吉木乃县| 包头市| 舟曲县| 夏邑县| 亳州市| 永春县| 齐齐哈尔市| 如皋市| 乐山市| 赣榆县| 双桥区| 呼玛县| 班戈县|