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

2、準(zhǔn)備工作
- (1)需要兩臺(tái) nginx 服務(wù)器
- (2)需要 keepalived
- (3)需要虛擬 ip

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

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

5、最終測(cè)試
此時(shí)便可以通過(guò)虛擬 ip 地址訪問(wèn)到 Nginx 。

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

到此這篇關(guān)于Nginx搭建高可用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx搭建高可用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解nginx前端根據(jù)$remote_addr分發(fā)方法
這篇文章主要介紹了詳解nginx前端根據(jù)$remote_addr分發(fā)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Nginx配置防盜鏈保護(hù)靜態(tài)資源的詳細(xì)教程
防盜鏈?zhǔn)且环N通過(guò)檢查 HTTP 請(qǐng)求頭中的 Referer 字段來(lái)限制資源訪問(wèn)的技術(shù),常用于保護(hù)圖片、視頻等靜態(tài)資源不被其他網(wǎng)站直接引用,以下是Nginx防盜鏈的原理、配置步驟以及測(cè)試方法,幫助你快速配置和驗(yàn)證防盜鏈功能,需要的朋友可以參考下2025-02-02
安裝Windows版nginx及部署前端代碼并解決刷新出現(xiàn)404問(wèn)題
這篇文章主要給大家介紹了關(guān)于安裝Windows版nginx及部署前端代碼解決刷新出現(xiàn)404問(wèn)題的相關(guān)資料,使用nginx部署前端項(xiàng)目是一篇非常詳細(xì)的教程,旨在幫助初學(xué)者使用Nginx來(lái)部署前端項(xiàng)目,需要的朋友可以參考下2023-12-12
nginx實(shí)現(xiàn)動(dòng)靜分離的方法示例
Nginx的靜態(tài)處理能力很強(qiáng),但是動(dòng)態(tài)處理能力不足,因此,在企業(yè)中常用動(dòng)靜分離技術(shù),本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2021-11-11
Nginx proxy_set_header參數(shù)設(shè)置
本文主要介紹了Nginx proxy_set_header參數(shù)設(shè)置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Linux系統(tǒng)下nginx日志每天定時(shí)切割的腳本寫(xiě)法
本篇文章給大家分享使用Linux系統(tǒng)自帶的命令logrotate對(duì)Nginx日志進(jìn)行切割的方法,對(duì)nginx日志切割腳本感興趣的朋友一起學(xué)習(xí)吧2016-11-11
nginx location中uri的截取的實(shí)現(xiàn)方法
這篇文章主要介紹了nginx location中uri的截取的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

