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強制使用https訪問的方法(http跳轉到https)
這篇文章主要介紹了nginx強制使用https訪問的方法(http跳轉到https),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-01-01
SpringBoot項目整合FastDFS+Nginx實現(xiàn)圖片上傳功能
FastDFS是一個開源的輕量級分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題,對SpringBoot整合FastDFS實現(xiàn)圖片上傳功能,感興趣的朋友一起看看吧2022-05-05
國外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例
這篇文章主要介紹了國外著名論壇程序IPB(Invision Power Board)在nginx下的配置示例,使用fastcgi配置模式,需要的朋友可以參考下2014-07-07
nginx?ingress代理websocket流量的配置方法
ingress?nginx默認支持websocket協(xié)議,使用長連接協(xié)議時需要注意連接超時的設置,文中有提到讀取和發(fā)送超時的注解參數(shù),通過本文閱讀可以快速掌握,對nginx?ingress代理websocket相關知識感興趣的朋友一起看看吧2022-03-03
關閉nginx空主機頭 防止nginx空主機頭及惡意域名指向
nginx的默認配置中的虛擬主機允許用戶通過IP訪問,或者通過未設置的域名訪問,比如有人惡意把他自己的域名指向了你的ip,需要的朋友可以參考下2016-09-09
Nginx gateway集群和動態(tài)網(wǎng)關的實現(xiàn)思路
這篇文章主要介紹了Nginx gateway集群和動態(tài)網(wǎng)關,動態(tài)網(wǎng)關即任何配置都實現(xiàn)不用重啟網(wǎng)關服務器都可以及時刷新,對Nginx gateway集群相關知識感興趣的朋友一起看看吧2022-10-10

