CenterOS7下安裝 nginx1.8+keepalived2.10高可用

 

 

 

1.首先安裝環境準備

 yum install popt-devel openssl openssl-devel libssl-dev libnl-devel popt-devel -y
 yum -y install kernel kernel-devel

2.上傳nginx至服務器.解壓已經上線好的安裝包

tar -zxvf nginx-1.18.0.tar.gz 

3.進入解壓目錄進行編譯


   ./configure --user=nginx  --group=nginx --prefix=/application/nginx-1.18.0  --with-http_stub_status_module --with-http_ssl_module

4.添加用戶組 nginx

 useradd nginx -s /sbin/nologin -M

啓動nginx

 /application/nginx-1.18.0/sbin/nginx #啓動nginx

查看進程 ,nginx安裝完成 keeplived 安裝

  安裝準備  keepalived-2.0.10.tar.gz

   


  解壓 文件

tar -zxvf keepalived-2.0.10.tar.gz 
cd keepalived-2.0.10/
進行解壓目錄進行編譯

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

創建keeplived根目錄,拷貝文件到想到的目錄

   mkdir /etc/keepalived/
   cp /root/soft/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/ #執行命令
   /root/soft/keepalived-2.0.10/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 
   cp /root/soft/keepalived-2.0.10/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ #配置文件路徑 


 啓動keepalived
  service keepalived start

設置開機啓動
  chkconfig keepalived on

作相同的配置:整臺主機

master slave
192.168.1.110 192.168.1.111

 

虛擬ip 192.168.1.188

master配置

[root@nginx02 soft]# vim /etc/keepalived/keepalived.conf 

global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_01   #serverid相當於
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}


vrrp_script chk_nginx {
    script "/application/nginx-1.18.0/check_nginx.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100  #權重 差50主從
    advert_int 1
    authentication {
auth_type PASS
auth_pass 1111
    }
    virtual_ipaddress {
      192.168.1.188/24  #虛擬VIP
   }
   track_script {
chk_nginx
    }

slave配置

global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_02  #標識id 下面的全部註釋
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

vrrp_script chk_nginx {
    script "/application/nginx-1.18.0/check_nginx.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP  #從節點backUP 主節點 MASTER
    interface eth0
    virtual_router_id 51  #不要改,主從到一致
    priority 50   #相當於權重
    advert_int 1
    authentication {
auth_type PASS
auth_pass 1111
    }
    virtual_ipaddress {
192.168.1.188/24    #準備好了虛擬vip,兩邊一致
    }

track_script {
chk_nginx
   }
}

重啓keepalived 

 service keepalived stop 

 service keepalived start

進行主機切換

ip addr

[root@nginx01 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    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 group default qlen 1000
    link/ether fa:16:3e:0c:16:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.110/24 brd 10.18.51.255 scope global noprefixroute dynamic eth0
       valid_lft 57780sec preferred_lft 57780sec
    inet 192.168.1.188/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::b77f:a5a3:fce9:b068/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::6075:b0ef:4dc0:160/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::83f4:aec2:32a8:5aa6/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever

虛擬VIP已經綁定,停掉master ,slave自動 接管

[root@nginx01 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    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 group default qlen 1000
    link/ether fa:16:3e:0c:16:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.111/24 brd 10.18.51.255 scope global noprefixroute dynamic eth0
       valid_lft 57780sec preferred_lft 57780sec
    inet 192.168.1.188/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::b77f:a5a3:fce9:b068/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::6075:b0ef:4dc0:160/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::83f4:aec2:32a8:5aa6/64 scope link tentative noprefixroute dadfailed 
       valid_lft forever preferred_lft forever

腳本   script "/application/nginx-1.18.0/check_nginx.sh"

#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
/application/nginx-1.18.0/sbin/nginx
sleep 5
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi
fi

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章