九、Nginx配置高可用的叢集
Nginx配置高可用的叢集
1、什麼是高可用
(1)、需要兩臺nginx伺服器
(2)、需要keepalived
(3)、需要虛擬ip
2、配置高可用的準備工作
(1)、需要兩臺伺服器(虛擬機器) 192.168.17.129和192.168.17.131
(2)、在兩臺伺服器上安裝nginx
(3)、在兩臺伺服器上安裝keepalived
3、在兩臺伺服器上安裝keepalived
(1)、使用yum命令安裝keepalived
cd /usr
yum install keepalived -y
檢視是否安裝成功 :rpm -q -a keepalived
(2)、安裝路徑cd /etc中生成目錄keepalived,有配置檔案keepalived.conf
4、完成高可用配置(主從配置)
ifconfig --檢視網絡卡、ip
(1)、修改/etc/keepalived/keepalived.conf配置檔案
global defs{
notification_email{
}
notification_email_from [email protected]
smtp_server 192.168.17.129
stmp_connect_timeout 30
router_id LVS_DEVEL #重要,訪問到主機vi/etc/host中加的主機名
}
vrrp_script chk_http_port{
script "/usr/local/src/nginx_check.sh" #檢測指令碼檔案路徑
interval 2 #(檢測指令碼執行的間隔,每隔兩秒檢測一次)
weight 2 #權重
}
vrrp_instance VI_1{
state MASTER #備份伺服器上將MASTER改為BACKUP,設定伺服器是主伺服器還是 備份伺服器
interface ens33 //網絡卡,ipconfig檢視
virtual_router_id 51 #主、備機的virtual_router_id必須相同
priority 100 #主、備機取不同的優先順序,主機值較大,備份機值較小,大優先順序高
advert_int 1 #每隔一秒檢測心跳
authentication{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress{
192.168.17.50 //VRRP H 虛擬地址
}
}
(2)、 新增檢測指令碼usr/local/src/nginx_check.sh
#!/bin/bash
A=ps -C nginx -no-header |wc -1
if [$A -eq 0 ];then
/usr/local/nginx/sbin/nginx --nginx啟動位置
sleep 2
if [ps -C nginx -no-header |wc -1
-eq 0 ];then
killall keepalived
fi
fi
(3)、把兩臺伺服器上的nginx和keepalived起來
啟動nginx:./nginx
啟動keepalived命令: systemctl start keepalived.service
ps -ef|grep keepalived --檢視程序
5、最終測試
(1)、瀏覽器輸入192.168.17.50 ,如果可以出現nginx頁面,說明虛擬ip繫結成功
(2)、把主伺服器(192.168.17.129)的nginx和keepalived停掉,再輸入192.168.17.50
停止nginx命令:./nginx -s stop
停止keepalived命令: systemctl stop keepalived.service
瀏覽器再輸入192.168.17.50 檢視效果