Nginx HA

两台服务器,一主一备,提供一个虚拟IP

SERVER vmvare01:192.168.10.191(主服务器 MASTER)

SERVER vmvare02:192.168.10.192(从服务器 BACKUP)

virtual IP:192.168.10.195

安装nginx请参照本http://nmszh.blog.51cto.com/4609205/1530262

要求:主服务器宕机后,从服务器接管。

  1. 在vmvare01和vmvare02都操作如下:

    # tar zxvf keepalived-1.2.13.tar.gz

    #cd   keepalived-1.2.2

[root@vmvare01 keepalived-1.2.2]# ./configure &&make &&make install

[root@vmvare01 keepalived-1.2.2]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/    (输入y,覆盖)

[root@vmvare01 keepalived-1.2.2]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

                                                                        (输入y,覆盖)

[root@vmvare01 keepalived-1.2.2]# mkdir /etc/keepalived (如果有不用创建)

[root@vmvare01 keepalived-1.2.2]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/               (输入y,覆盖)

[root@vmvare01 keepalived-1.2.2]# cp /usr/local/sbin/keepalived /usr/sbin/

2.在vmvare01上配置为主服务器:

[root@vmvare01 keepalived-1.2.2]# vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived


global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL     注:router_id可默认,与从服务保持一致

}

vrrp_script chk_nginx {               #设置脚本监控

        script "/opt/nginx/conf/check_nginx_process.sh"

        interval 1

        weight -5

}

vrrp_instance VI_1 {

    state MASTER             注:默认MASTER

    interface eth0

    virtual_router_id 51     注:默认,保持主备一致

    priority 100            注:默认100,数字越大,优先级越高

    advert_int 1           注:默认,心跳广播时间1(秒)

    authentication {

        auth_type PASS

        auth_pass 1111

    }

track_script {              #启用监控脚本

        chk_nginx                  

}

    virtual_ipaddress {

        192.168.10.195     注:自修改虚拟IP

    }

}


3.在vmvare02上配置为从服务器:


[root@vmvare02 ~]# vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived


global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL    注:router_id可默认,与主服务保持一致

}

vrrp_script chk_nginx {               #设置脚本监控

        script "/opt/nginx/conf/check_nginx_process.sh"

        interval 1

        weight -5

}

vrrp_instance VI_2 {

    state BACKUP      注:改成BACKUP 

    interface eth0

    virtual_router_id 51   注:默认,保持主备一致

    priority 90          注:90<100,比主服务优先级低

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

track_script {              #启用监控脚本

        chk_nginx                  

}

    virtual_ipaddress {

        192.168.10.196    注:自修改虚拟IP 

    }

}

4.主服务器启动keepalived

[root@vmvare01 keepalived-1.2.2]# service keepalived start

[root@vmvare01 keepalived-1.2.2]# ps -ef | grep keepalived

root     12035     1  0 07:37 ?        00:00:00 keepalived -D

root     12036 12035  0 07:37 ?        00:00:00 keepalived -D

root     12038 12035  0 07:37 ?        00:00:00 keepalived -D

root     12043   651  0 07:43 pts/0    00:00:00 grep keepalived

注:默认1个主进程,两个辅进程,共3个进程

[root@vmvare01 keepalived-1.2.2]# ip a

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

    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:0c:29:db:a2:04 brd ff:ff:ff:ff:ff:ff

    inet 192.168.10.191/24 brd 192.168.10.255 scope global eth0

    inet 192.168.10.195/32 scope global eth0

    inet6 fe80::20c:29ff:fedb:a204/64 scope link 

       valid_lft forever preferred_lft forever

从服务器启动keepalived

[root@vmvare02 keepalived-1.2.2]# service keepalived start

[root@vmvare02 keepalived-1.2.2]# ps -ef | grep keepalived

root      4536     1  0 21:52 ?        00:00:00 keepalived -D

root      4538  4536  0 21:52 ?        00:00:00 keepalived -D

root      4539  4536  0 21:52 ?        00:00:00 keepalived -D

root      4555  2996  0 22:26 pts/0    00:00:00 grep keepalived

注:默认1个主进程,两个辅进程,共3个进程

[root@vmvare02 ~]# ip a

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

    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:16:3e:a6:60:17 brd ff:ff:ff:ff:ff:ff

    inet 192.168.10.192/24 brd 192.168.5.255 scope global eth0

    inet 192.168.10.196/32 scope global eth0

    inet6 fe80::216:3eff:fea6:6017/64 scope link 

       valid_lft forever preferred_lft forever


5.编写脚本监控 /opt/nginx/conf/check_nginx_process.sh



#!/bin/sh 


 killall  -0   nginx


 if 


 [[ $? -ne 0 ]];then


#       /opt/nginx/sbin/nginx

#       if

#[[ $? -ne 0 ]];then


 /etc/init.d/keepalived stop


# fi 

fi

测试主服务器nginx进程杀掉,keepalived服务自动关闭

[root@localhost conf]# ps -ef | grep nginx

root     10501     1  0 05:41 ?        00:00:00 nginx: master process /opt/nginx/sbin/nginx

nobody   10502 10501  0 05:41 ?        00:00:00 nginx: worker process

root     11504 13917  0 05:44 pts/2    00:00:00 grep nginx

[root@localhost conf]# ps -ef | grep keepalived

root     11567 13917  0 05:44 pts/2    00:00:00 grep keepalived

root     28822     1  0 03:30 ?        00:00:00 keepalived -D

root     28824 28822  0 03:30 ?        00:00:01 keepalived -D

root     28825 28822  0 03:30 ?        00:00:09 keepalived -D

[root@localhost conf]# kill 10501

[root@localhost conf]# ps -ef | grep keepalived

root     11602 13917  0 05:45 pts/2    00:00:00 grep keepalived

[root@localhost conf]# ps -ef | grep nginx

root     11607 13917  0 05:45 pts/2    00:00:00 grep nginx



本文出自 “梦三国” 博客,谢绝转载!

你可能感兴趣的:(服务器,local)