nginx怎么結合keepalived實現高可用

keepalived的介紹

keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,keepalived將檢測到,并將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。

系統架構

nginx怎么結合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
喜歡就支持一下吧
點贊13 分享