keepalived的介紹
keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,keepalived將檢測到,并將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。
系統架構圖
實現步驟
1.環境配置
1.1 安裝nginx
安裝相關依賴
yum?install?pcre-devel?zlib?zlib-devel?openssl?openssl-devel
上傳解壓壓縮包
tar?zxvf?nginx-1.12.2.tar.gz
創建目錄,檢測配置
mkdir?-p?/usr/local/nginx ./configure?--prefix=/usr/local/nginx
預編譯和安裝
make?&&?make?install
啟動、停止相關命令
cd?/usr/local/nginx/sbin/ ./nginx ./nginx?-s?stop ./nginx?-s?start
1.2 安裝keepalived
yum?install?-y?keepalived
2.主機配置
修改keepalived配置文件
vim?/etc/keepalived/keepalived.conf
修改的內容如下
#新增的配置 vrrp_script?chk_http_port?{ ?script?"/shell/nginx_check.sh"?#腳本地址 ?interval?2?#檢測腳本執行的間隔 ?weight?2?#比重 } vrrp_instance?vi_1?{ ?state?master?#主服務器為master,從服務器為backup ?interface?eth0?#網卡 ?virtual_router_id?51?#主、備機的virtual_router_id必須相同 ?priority?100?#主、備機不同的優先級,主機優先級較大,備機值較小,默認是100 ?advert_int?1 ?authentication?{ ??auth_type?pass ??auth_pass?1111 ?} ?#虛擬ip地址 ?virtual_ipaddress?{ ??192.168.126.88 ?} }
創建編寫腳本文件
mkdir?/shell/nginx_check.sh vim?/shell/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
3.從機配置
修改keepalived配置文件
vrrp_instance?vi_1?{ ??state?backup?#主服務器為master,從服務器為backup ??interface?eth0?#網卡 ??virtual_router_id?51?#主、備機的virtual_router_id必須相同 ??priority?50?#主、備機不同的優先級,主機優先級較大,備機值較小 ??advert_int?1 ??authentication?{ ????auth_type?pass ????auth_pass?1111 ??} ??#虛擬ip地址 ??virtual_ipaddress?{ ????192.168.126.88 ??} }
4.啟動服務
啟動
service?keepalived?start
查看虛擬ip地址
ip?addr 1:?lo:?<loopback>?mtu?65536?qdisc?noqueue?state?unknown? ??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>?mtu?1500?qdisc?pfifo_fast?state?up?qlen?1000 ??link/ether?00:0c:29:4f:31:ce?brd?ff:ff:ff:ff:ff:ff ??inet?192.168.126.100/24?brd?192.168.126.255?scope?global?eth0 ??inet?192.168.126.88/32?scope?global?eth0 ??inet6?fe80::20c:29ff:fe4f:31ce/64?scope?link? ????valid_lft?forever?preferred_lft?forever</broadcast></loopback>
5.關閉防火墻測試
關閉防火墻
service?iptables?stop #查看防火墻是否開機自啟動 chkconfig?--list?|?grep?iptables chkconfig?iptables?off
登陸虛擬ip地址查看
http://192.168.126.88/
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END