Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用(最新解決方案)
Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用
一、準(zhǔn)備服務(wù)器
1、主機(jī)清單
| 主機(jī)名 | ip | 系統(tǒng) |
|---|---|---|
| Proxy-master | 10.12.153.105 | centos7.5 |
| Proxy-slave | 10.12.153.176 | centos7.5 |
| Real-server1 | 10.12.153.114 | Centos7.5 |
| Real-server2 | 10.12.153.187 | centos7.5 |
2、配置安裝nginx 所有的機(jī)器,關(guān)閉防火墻和selinux
[root@proxy-master ~]# systemctl stop firewalld //關(guān)閉防火墻 [root@proxy-master ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux //關(guān)閉selinux,重啟生效 [root@proxy-master ~]# setenforce 0 //關(guān)閉selinux,臨時(shí)生效
3.安裝nginx, 全部4臺(tái)
[root@proxy-master ~]# cd /etc/yum.repos.d/ [root@proxy-master yum.repos.d]# vim nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 [root@proxy-master yum.repos.d]# yum install yum-utils -y [root@proxy-master yum.repos.d]# yum install nginx -y
二、部署負(fù)載均衡
1、選擇兩臺(tái)nginx服務(wù)器作為代理服務(wù)器。
2、給兩臺(tái)代理服務(wù)器安裝keepalived制作高可用生成VIP
3、配置nginx的負(fù)載均衡
#兩臺(tái)代理配置一樣
1、修改nginx的配置文件,添加以下內(nèi)容,
#注意:將/etc/nginx/conf.d/default.conf改名,不然轉(zhuǎn)發(fā)不過(guò)去
[root@proxy-slave conf.d]# mv default.conf default.conf.back
upstream backend {
server 10.12.153.114:80 weight=1 max_fails=3 fail_timeout=20s;
server 10.12.153.187:80 weight=1 max_fails=3 fail_timeout=20s;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header Host $host:$proxy_port;
proxy_set_header X-Forwarded-For $remote_addr;
}
}2、重啟nginx
[root@proxy-master ~]# nginx -s reload
3.修改server1、server2的web頁(yè)面測(cè)試
[root@server2 ~]# cat >>/usr/share/nginx/html/index.html<<EOF > 187 > EOF [root@server1 html]# cat >/usr/share/nginx/html/index.html<<EOF > 114 > EOF
4..訪問(wèn)負(fù)載均衡


負(fù)載均衡正常
三、Keepalived實(shí)現(xiàn)調(diào)度器HA
注:主/備調(diào)度器均能夠?qū)崿F(xiàn)正常調(diào)度
1、 主/備調(diào)度器安裝軟件
[root@proxy-master ~]# yum install -y keepalived [root@proxy-slave ~]# yum install -y keepalived
2、備份keepalived配置文件
[root@proxy-master ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
3、修改配置文件
①修改master
[root@proxy-master ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id directory1 #輔助改為directory2
}
:
vrrp_instance VI_1 {
state MASTER #定義主還是備
interface ens33 #VIP綁定接口
virtual_router_id 80 #整個(gè)集群的調(diào)度器一致
priority 100 #back改為50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.12.153.151/24 # vip
}
}②修改slave
[root@proxy-slave ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id directory2
}
vrrp_instance VI_1 {
state BACKUP #設(shè)置為backup
interface ens33
nopreempt #設(shè)置到back上面,不搶占資源
virtual_router_id 80
priority 50 #輔助改為50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.12.153.151/24
}
}4、啟動(dòng)keepalived(主備均啟動(dòng))
[root@proxy-master ~]# systemctl enable keepalived [root@proxy-slave ~]# systemctl start keepalived
5、通過(guò)停止keepalived來(lái)測(cè)試VIP是否飄逸
①在master,slave上查看


②停掉master的keepalived來(lái)模仿master宕機(jī),看VIP是否飄逸


由此可見(jiàn)nginx的高可用成功
到此:
可以解決心跳故障keepalived
不能解決Nginx服務(wù)故障
四、解決nginx服務(wù)故障
擴(kuò)展對(duì)調(diào)度器Nginx健康檢查(可選)兩臺(tái)都設(shè)置
1、作用
讓Keepalived以一定時(shí)間間隔執(zhí)行一個(gè)外部腳本,腳本的功能是當(dāng)Nginx失敗,則關(guān)閉本機(jī)的Keepalived
2、檢查nginx健康的腳本
! Configuration File for keepalived
global_defs {
router_id directory1 #輔助改為directory2
}
:
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx_status.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER #定義主還是備
interface ens33 #VIP綁定接口
virtual_router_id 80 #整個(gè)集群的調(diào)度器一致
priority 100 #back改為50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.12.153.151/24 # vip
}
track_script {
check_nginx
}
}注:必須先啟動(dòng)nginx,再啟動(dòng)keepalived
3、測(cè)試
停止master的nginx,VIP會(huì)飄逸到salve上,
再次啟動(dòng)master的nginx,重啟master的keepalived,VIP會(huì)飄到master上。
到此這篇關(guān)于Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用的文章就介紹到這了,更多相關(guān)Nginx keepalived七層負(fù)載均衡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- keepalived+nginx高可用實(shí)現(xiàn)方法示例
- Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼
- nginx結(jié)合keepalived實(shí)現(xiàn)高可用的完整步驟
- Keepalived實(shí)現(xiàn)Nginx負(fù)載均衡高可用的示例代碼
- keepalived對(duì)nginx進(jìn)行高可用搭建及原理詳解
- Keepalived如何實(shí)現(xiàn)Nginx高可用
- keepalived?+?nginx?實(shí)現(xiàn)高可用方案
- 使用Nginx?+?Keepalived?實(shí)現(xiàn)高可用?Web?負(fù)載均衡筆記(虛擬機(jī))
- Nginx高可用Keepalived的具體使用
- Nginx使用Keepalived部署web集群(高可用高性能負(fù)載均衡)實(shí)戰(zhàn)案例
- Keepalived搭建nginx高可用的實(shí)現(xiàn)
相關(guān)文章
Nginx中的用戶認(rèn)證配置及阻止用戶使用代理訪問(wèn)的方法
這篇文章主要介紹了Nginx中的用戶認(rèn)證配置及阻止用戶使用代理訪問(wèn)的方法,用戶認(rèn)證部分用到了自帶的ngx_http_auth_basic_module模塊,需要的朋友可以參考下2016-01-01
Nginx代理導(dǎo)致請(qǐng)求頭某些內(nèi)容丟失的問(wèn)題解決
本文主要介紹了在使用NGINX代理時(shí)請(qǐng)求頭中的下劃線被自動(dòng)忽略的問(wèn)題,通過(guò)兩種方法解決了這個(gè)問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02
深入理解nginx如何實(shí)現(xiàn)高性能和可擴(kuò)展性
這篇文章主要介紹了深入理解nginx如何實(shí)現(xiàn)高性能和可擴(kuò)展性,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Nginx安裝nginx-rtmp-module模塊的實(shí)現(xiàn)
nginx-rtmp-module是一個(gè)用于Nginx的第三方模塊,它使Nginx能夠支持實(shí)時(shí)多媒體流的傳輸和處理,本文主要介紹了Nginx安裝nginx-rtmp-module模塊,具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02
shell腳本實(shí)戰(zhàn)之部署nginx腳本實(shí)例
最近自己編寫的Linux一鍵部署腳本,可以一鍵部署Nginx,分享給大家,這篇文章主要給大家介紹了關(guān)于shell腳本實(shí)戰(zhàn)之部署nginx腳本的相關(guān)資料,需要的朋友可以參考下2022-12-12

