最近在離線環境下做 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