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