這篇文章主要介紹了nginx高可用集群的實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1、配置:
(1)需要兩臺nginx服務器 (2)需要keepalived (3)需要虛擬ip
2、配置高可用的準備工作
(1)需要兩臺服務器192.168.180.113和192.168.180.112 (2)在兩臺服務器安裝nginx (3)在兩臺服務器安裝keepalived
3、在兩臺服務器安裝keepalived
(1)使用yum命令進行安裝
(2)安裝之后,在etc里面生成目錄keepalived,有文件keepalived.conf
[root@topcheer dev]# yum install keepalived -y
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: ftp.riken.jp
* extras: mirrors.cn99.com
* updates: mirror.lzu.edu.cn
gitlab_gitlab-ce/x86_64/signature | 836 B 00:00:00
gitlab_gitlab-ce/x86_64/signature | 1.0 kB 00:00:00 !!!
gitlab_gitlab-ce-source/signature | 836 B 00:00:00
gitlab_gitlab-ce-source/signature | 951 B 00:00:00 !!!
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 keepalived.x86_64.0.1.3.5-16.el7 將被 安裝
--> 正在處理依賴關系 libnetsnmpmibs.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要
--> 正在處理依賴關系 libnetsnmpagent.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要
--> 正在檢查事務
---> 軟件包 net-snmp-agent-libs.x86_64.1.5.7.2-43.el7 將被 安裝
--> 解決依賴關系完成
依賴關系解決
==========================================================================================================================================
Package 架構 版本 源 大小
==========================================================================================================================================
正在安裝:
keepalived x86_64 1.3.5-16.el7 base 331 k
為依賴而安裝:
net-snmp-agent-libs x86_64 1:5.7.2-43.el7 base 706 k
事務概要
==========================================================================================================================================
安裝 1 軟件包 (+1 依賴軟件包)
總下載量:1.0 M
安裝大?。?.0 M
Downloading packages:
(1/2): net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm | 706 kB 00:00:00
(2/2): keepalived-1.3.5-16.el7.x86_64.rpm | 331 kB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------
總計 1.8 MB/s | 1.0 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 1/2
正在安裝 : keepalived-1.3.5-16.el7.x86_64 2/2
驗證中 : keepalived-1.3.5-16.el7.x86_64 1/2
驗證中 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 2/2
已安裝:
keepalived.x86_64 0:1.3.5-16.el7
作為依賴被安裝:
net-snmp-agent-libs.x86_64 1:5.7.2-43.el7
完畢!
4 、修改配置文件
2臺都要換,一個主機,一個從機
[root@topcheer keepalived]# cat keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.180.113
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(檢測腳本執(zhí)行的間隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 備份服務器上將 MASTER 改為 BACKUP
interface ens33 //網(wǎng)卡
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 40 # 主、備機取不同的優(yōu)先級,主機值較大,備份機值較小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.180.114 // VRRP H 虛擬地址
}
}
腳本:
[root@topcheer src]# cat nginx_check.sh
#!/bin/bash
A=`ps -C nginx ▒Cno-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[root@topcheer src]#
把兩臺服務器上nginx和keepalived啟動
啟動nginx:./nginx 由于我112上安裝了gitlab自帶nginx,就不要啟動了 啟動keepalived:systemctl start keepalived.service
5、測試
把113的nginx和keepalived關掉,發(fā)現(xiàn)會切換到112上
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。