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