Nginx搭建高可用的實現(xiàn)
1、高可用概念
一臺nginx宕機了,還可以切換到另一臺nginx上繼續(xù)工作,讓用戶繼續(xù)訪問后臺服務器

2、準備工作
- (1)需要兩臺 nginx 服務器
- (2)需要 keepalived
- (3)需要虛擬 ip

3、高可用準備工作
(1)需要兩臺服務器 192.168.17.129 和 192.168.17.131
(2)在兩臺服務器安裝 nginx
? 這里如果不想再去安裝一遍 Nginx ,可以直接克隆 CentOs 。
(3)在兩臺服務器安裝 keepalived
使用命令安裝:yum install keepalived –y
安裝之后,在 /etc 里面生成目錄 keepalived,有文件 keepalived.conf

4、完成高可用配置(主從配置)
(1)主機 Nginx 修改/etc/keepalived/keepalivec.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.17.129
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 MASTER # 備份服務器上將 MASTER 改為 BACKUP
interface ens33 # 網(wǎng)卡
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 100 # 主、備機取不同的優(yōu)先級,主機值較大,備份機值較小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.77.50 # VRRP H 虛擬地址
}
}(2)主機 /usr/local/src添加檢測腳本: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) 從機 Nginx修改/etc/keepalived/keepalivec.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.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 修改為從機 BACKUP
interface ens33 # 修改為從機 ip
virtual_router_id 51
priority 90 # 優(yōu)先級比主機低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.77.50
}
}(4)從機 /usr/local/src添加檢測腳本: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(5)、啟動 Nginx
分別啟動主從 Nginx ,切換到/usr/local/nginx/sbin/,執(zhí)行./nginx
(6)、主從都啟動 keepalived
CentoS6啟動命令
service keepalived start
Centos7啟動命令
systemctl start keepalived.service
(7)、主從都測試 keepalived 是否啟動成功
ps -ef | grep keepalived

5、最終測試
此時便可以通過虛擬 ip 地址訪問到 Nginx 。

6、將從機nginx和keepalived停掉,繼續(xù)訪問虛擬ip,依舊可以方位到nginx,高可用至此完成。

到此這篇關于Nginx搭建高可用的實現(xiàn)的文章就介紹到這了,更多相關Nginx搭建高可用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解nginx前端根據(jù)$remote_addr分發(fā)方法
這篇文章主要介紹了詳解nginx前端根據(jù)$remote_addr分發(fā)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11
Nginx 設置域名轉發(fā)到指定端口的實現(xiàn)方法
這篇文章主要介紹了Nginx 設置域名轉發(fā)到指定端口的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08
安裝Windows版nginx及部署前端代碼并解決刷新出現(xiàn)404問題
這篇文章主要給大家介紹了關于安裝Windows版nginx及部署前端代碼解決刷新出現(xiàn)404問題的相關資料,使用nginx部署前端項目是一篇非常詳細的教程,旨在幫助初學者使用Nginx來部署前端項目,需要的朋友可以參考下2023-12-12
Nginx proxy_set_header參數(shù)設置
本文主要介紹了Nginx proxy_set_header參數(shù)設置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-09-09
Linux系統(tǒng)下nginx日志每天定時切割的腳本寫法
本篇文章給大家分享使用Linux系統(tǒng)自帶的命令logrotate對Nginx日志進行切割的方法,對nginx日志切割腳本感興趣的朋友一起學習吧2016-11-11
nginx location中uri的截取的實現(xiàn)方法
這篇文章主要介紹了nginx location中uri的截取的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04

