nginx+keepalived 離線安裝

最近在離線環境下做 nginx+keepalived 實現高可用的負載均衡,離線環境下安裝真的是十分費勁。以下就以centos7爲例安裝 keepalived-1.2.18 + nginx1.14.1。

1、我們需要nginx的rpm包,在官網下載 http://nginx.org/en/download.html 。不瞭解 rpm 的同學可以自行百度。

2、安裝keepalived服務需要用的gcc ,所以需要準備gcc的包 ,在http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ 下載如下包

3、準備 keepalived的包  http://www.keepalived.org/download.html

4、直接下載我整理好的 keepalived-1.2.18 + nginx1.14.1 + gcc

當三個包準備好了就可以安裝啦,我在虛擬機上克隆了3臺虛擬機 分別是

虛擬IP 真實IP nginx端口 主從
192.168.71.130 192.168.71.128 80 MASTER
192.168.71.130 192.168.71.129 80 BACKUP

一、安裝nginx

 xshell root用戶 連接 192.168.71.128  執行以下操作

1 、在root目錄新建 nginx_rpm,將nginx安裝包用xftp傳入

2、rpm -ivh 安裝rpm包

3、 whereis nginx 顯示nginx 安裝位置(/usr/sbin/nginx 啓動文件;/etc/nginx 配置目錄)

4、啓動nginx

5、瀏覽器驗證

 

6、若本機瀏覽器無法訪問,但本機可以ping通xuni虛擬機IP,需要開啓防火牆的80端口,或者關閉防火牆

7、在 192.168.8.129 中按照同樣的步驟按照nginx。

二、安裝keepalived

1、192.168.71.128 root目錄下新建keepalived_filewenj文件夾,傳入 keepalived 安裝包 ; 並解壓安裝包。

2、驗證 gcc 是否存在  (gcc -v );若不存在安裝gcc:

 2.1 上傳gcc rpm文件

 

2.2 安裝rpm包

2.3 驗證 gcc 安裝

3、進入 keepalived目錄編譯

4、將keepalived安裝成Linux系統服務
因爲沒有使用keepalived的默認路徑安裝(默認是/usr/local),安裝完成後,需要手動複製默認的配置文件到默認路徑
# mkdir /etc/keepalived
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
複製keepalived服務腳本到默認的地址
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/sbin/keepalived /usr/sbin/
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

最後一個連接不上,提示文件存在,可先刪除,在連接


5、設置keepalived 開機啓動


 

6、修改keepalived配置文件 /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lb01 ## 標識本節點的字條串
}

## keepalived 會定時執行腳本,nginx_check.sh
vrrp_script chk_nginx { 
   script "/etc/keepalived/nginx_check.sh" interval 2  ## 檢測時間間隔
   weight -20 ## 如果條件成立,權重-20
} 


vrrp_instance VI_1 {
    state MASTER ## 主節點爲 MASTER,對應的備份節點爲 BACKUP
    interface ens33 ## 綁定虛擬 IP 的網絡接口,與本機 IP 地址所在的網絡接口相同 在/etc/sysconfig/network-scripts/ 下存在 ifcfg-ens33文件(有的是ifcfg-eth0)
    virtual_router_id 130 ## 虛擬路由的 ID 號,兩個節點設置必須一樣,可選 IP 最後一段使用, 相同的 VRID 爲一個組,他將決定多播的 MAC 地址
	mcast_src_ip 192.168.71.128  ## 本機IP
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    
    ## 將 track_script 塊加入 instance 配置塊
    track_script { 
	chk_nginx ## 執行 Nginx 監控的服務
    } 
    
    ## 虛擬 IP 池, 兩個節點設置必須一樣
    virtual_ipaddress {
        192.168.71.130 ## 虛擬 ip,可以定義多個
    }
}

7、在 etc/keepalived目錄下添加 nginx_check.sh

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
	/usr/sbin/nginx
	sleep 2
	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
		killall keepalived
	fi
fi 

我是自接替換的

8、啓動keepalived
# service keepalived start
出現以下,代表啓動成功
Starting keepalived: [ OK ]

執行ip add命令可查看虛擬IP(192.168.71.130) 已經掛上

關閉keepalived
# service keepalived stop

執行ip add命令可查看虛擬IP(192.168.71.130) 已經消失

9、在192.168.71.129上同樣步驟安裝 keepalived 並啓動。配置文件如下

10、訪問192.168.71.130 (注意開啓80端口)

 

測試就不寫了,主要看以下兩篇博客搭建

https://www.jianshu.com/p/da26df4f7d60

http://blog.51cto.com/superpcm/2095395

 

 

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