- 準備虛擬機(已安裝nginx), 安裝教程 : 鏈接地址
- 設置固定 IP : 鏈接地址
- Keepalived
- 官網地址 : https://www.keepalived.org/
- 下載地址 : https://yonxin.lanzous.com/b00zjg5hi
密碼 : 4aru - 先安裝 gcc 和 gcc++
yum install gcc
yum install gcc-c++
- 解壓縮keepalived到指定目錄
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/
安裝openssl
yum install -y openssl openssl-devel
安裝Keepalived
- 解壓縮keepalived到指定目錄
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/
- 如圖
- 進入解壓目錄
cd /usr/local/src/keepalived-1.4.2
- 執行配置
./configure --prefix=/usr/local/keepalived
- 如圖
- 編譯安裝
make && make install
- 如圖
初始化配置及啓動測試:
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
- 配置 keepalived 命令可以在任意目錄下執行
cp /usr/local/keepalived/sbin/keepalived /usr/local/bin/
2. 將 keepalived 腳本放到 /etc/init.d/
目錄下
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/
3. 拷貝 keepalived.conf
配置文件到 /etc/keepalived/
目錄下, 當 keepalived
啓動的時候默認就會到 /etc/keepalived/
目錄下找配置文件
mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
4. 啓動、關閉、重啓、查看狀態
service keepalived start|stop|restart|status
- 啓動 keepalived 服務
6. 啓動完後查看狀態發現啓動失敗, 說配置文件有錯誤, 如圖
上述錯誤下面解決
準備從機
- 關閉當前主機(避免ip衝突), 克隆一臺
- 選中當前主機, 右鍵 管理 克隆
- 然後下一步, 下一步, 創建完整的克隆
- 然後選擇修改虛擬機名稱, 及克隆存放路徑
- 等待完成關閉即可
- 重置網卡mac地址
- 修改靜態IP , 配置文件修改 : 鏈接地址
- 手動修改
- 按一下關閉打開即可生效
- 然後啓動主機
主備配置文件修改
- 修改主服務器keepalived.conf配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.230.201
smtp_connect_timeout 30
router_id nginx_master
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#檢測腳本定義
vrrp_script chk_http_port {
script "/etc/keepalived/nginx_check.sh"
interval 2 # 腳本執行的間隔
weight 2 # 權重等級
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
#主從的優先級, 主機一定要大於從機
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# VIP: 提供給外部訪問的地址, 必須和主從在同一個網段內, 主從地址不能相同
virtual_ipaddress {
192.168.230.190
}
}
- 如圖
- 修改完後按
esc
刪除沒用的行, 保存退出!
d200d
- 修改從機服務器
keepalived.conf
配置文件
vim /etc/keepalived/keepalived.conf
- 如圖
- 修改完後按
esc
刪除沒用的行, 保存退出!
d200d
主從服務器創建相同的檢查腳本文件
- 主機在
/etc/keepalived/
目錄下創建nginx_check.sh
腳本配置文件
vim /etc/keepalived/nginx_check.sh
- 寫入一下腳本
#!/bin/bash
A=`ps -C nginx -no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0];then
killall keepalived
fi
fi
- 如圖
- 保存退出!
- 從機操作和上面一樣
- 給
nginx_check.sh
文件設置可執行權限,[主從都要設置
]
chmod 777 /etc/keepalived/nginx_check.sh
配置完信息後在主從機中分別啓動nginx 和 keepalived
測試
- 修改主備nginx的
index.html
頁面顯示內容區分主備
vim /usr/local/nginx/html/index.html
- 添加一句話測試, 如圖
- 在瀏覽器地址欄輸入配置的虛擬IP訪問成功能, 表示高可用搭建完成!!
雙主模式
- 在主機keepalived.conf最後一行添加
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.230.191
}
}
2. 在從機keepalived.conf最後一行添加
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 190
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.230.191
}
}
3. 修改完後重新加載配置文件
service keepalived reload
感謝閱讀, 如有什麼更好的建議或方法 ,可以留言或進羣交流:1101584918,歡迎大家加入。