nginx負(fù)載均衡配置方式
nginx實(shí)現(xiàn)負(fù)載均衡的方式
- 1.輪詢(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,后端服務(wù)器宕機(jī)時(shí),能被自動(dòng)刪除且請(qǐng)求不會(huì)受影響
- 2.weight權(quán)重
指定輪詢概率,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況,權(quán)重越高被訪問(wèn)的概率就越大
- 3.ip hash
每個(gè)請(qǐng)求被訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客訪客固定訪問(wèn)一個(gè)后端服務(wù)器
- 4.fair
動(dòng)態(tài)根據(jù)后端服務(wù)器處理請(qǐng)求的響應(yīng)時(shí)間來(lái)進(jìn)行負(fù)載分配,響應(yīng)時(shí)間短的優(yōu)先分配,時(shí)間長(zhǎng)的 分配的請(qǐng)求會(huì)減少,nginx服務(wù)默認(rèn)不支持這個(gè)算法,需要安裝upstream_fair模塊
- 5.url_hash
根據(jù)訪問(wèn)的UPL計(jì)算出的hash結(jié)果來(lái)分配請(qǐng)求,每個(gè)請(qǐng)求會(huì)指向固定的服務(wù)器,常用于nginx作為靜態(tài)資源服務(wù)器的場(chǎng)景,可以提高緩存效率,nginx服務(wù)默認(rèn)不支持這個(gè)算法,需要安裝nginx的hash軟件包
環(huán)境配置
需要三臺(tái)虛擬機(jī),都要配置好nginx
| 機(jī)器名 | 服務(wù)器IP | 用途 |
| nginx (主) | 192.168.95.137 | 負(fù)載均衡服務(wù)器 |
| 服務(wù)器1 | 192.168.95.138 | 后端服務(wù)器 |
| 服務(wù)器2 | 192.168.95.139 | 后端服務(wù)器 |
1.設(shè)置防火墻 三臺(tái)虛擬機(jī)都要設(shè)置
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld.service
- 關(guān)閉selinux: /etc/selinux/config
- 修改配置文件:將selinux=enforcing改為disabled
- 弄好后重啟虛擬機(jī),查看后出現(xiàn)Disabled
getenforce #查看selinux狀態(tài)
- 或者臨時(shí)關(guān)閉(不用重啟機(jī)器):setenforce 0
輪詢模式負(fù)載均衡
打開nginx(負(fù)責(zé)負(fù)載均衡)主虛擬機(jī)
編輯配置文件:
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak #備份一個(gè)配置文件,防止配置錯(cuò)誤可重新配置
vim nginx.conf
在http{}模塊里添加以下內(nèi)容
upstream webServer {
server 192.168.95.138:80; #服務(wù)器1
server 192.168.95.139:80; #服務(wù)器2
}
server{
listen 80;
server_name 192.168.95.137;
location / {
index index.html index.htm;
proxy_pass http://webServer; #【webServer】和upstream 【webServer】名字一致
}
}檢查語(yǔ)法并重啟
/usr/local/nginx/sbin/nginx -t #檢查語(yǔ)法 /usr/local/nginx/sbin/nginx -s reload #重啟

配置服務(wù)器1
cd /usr/local/nginx/html/ cp index.html index.html.bak vim index.html #清空里面的所有配置
添加下面的語(yǔ)句:
<h>Welcome to server1<h>
保存退出
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
瀏覽器訪問(wèn):http://ip

配置服務(wù)器2
cd /usr/local/nginx/html/ cp index.html index.html.bak vim index.html #清空里面的所有配置
添加下面的語(yǔ)句:
<h>Welcome to server2<h>
保存退出
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
瀏覽器訪問(wèn):http://ip

測(cè)試負(fù)載均衡:
[root@localhost conf]# curl 192.168.95.137 <h>Welcome to server1 <h> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server1 <h> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/>
然后瀏覽器進(jìn)行訪問(wèn)
權(quán)重模式負(fù)載均衡
打開nginx(負(fù)責(zé)負(fù)載均衡)主虛擬機(jī)
編輯配置文件:
在http{}模塊里添加以下內(nèi)容
upstream webServer {
server 192.168.95.138:80 weight=3; #在原來(lái)的基礎(chǔ)上添加weight=自定義權(quán)重值
server 192.168.95.139:80 weight=7;
}
server{
listen 80;
server_name 192.168.95.137;
location / {
index index.html index.htm;
proxy_pass http://webServer;
}
}保存退出
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
測(cè)試負(fù)載均衡
[root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server1 <h> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server1 <h> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server1 <h> [root@localhost conf]# curl 192.168.95.137 <h>Welcome to server2<h/>
從上面結(jié)果可以看出,一共測(cè)試訪問(wèn)10次用戶請(qǐng)求,分流至server2服務(wù)器上的有7次,分流至server1服務(wù)器上的有3次,表明權(quán)重配置生效
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Nginx HTTP反向代理負(fù)載均衡實(shí)驗(yàn)教程
- Nginx搭建負(fù)載均衡及常見(jiàn)問(wèn)題處理
- Nginx幾種負(fù)載均衡模式的實(shí)現(xiàn)示例
- Nginx負(fù)載均衡通用方案詳解
- Nginx負(fù)載均衡與健康檢查使用詳解
- 詳解Nginx中常見(jiàn)負(fù)載均衡策略配置與使用場(chǎng)景
- Nginx 負(fù)載均衡和緩存配置最佳實(shí)踐
- Nginx+Tomcat負(fù)載均衡群集全過(guò)程
- Nginx部署負(fù)載均衡服務(wù)的步驟全解析
- Nginx 4層轉(zhuǎn)發(fā)TCP流量實(shí)現(xiàn)負(fù)載代理
相關(guān)文章
使用Nginx代理解決跨域問(wèn)題并傳遞請(qǐng)求頭的完整指南
在現(xiàn)代 Web 開發(fā)中,跨域資源共享(CORS)是一個(gè)常見(jiàn)的問(wèn)題,當(dāng)你的前端應(yīng)用嘗試從一個(gè)域名請(qǐng)求另一個(gè)域名的資源時(shí),瀏覽器會(huì)阻止這種請(qǐng)求,除非目標(biāo)服務(wù)器明確允許跨域訪問(wèn),本文將詳細(xì)介紹如何使用 Nginx 作為代理服務(wù)器來(lái)解決跨域問(wèn)題,需要的朋友可以參考下2025-01-01
Nginx開啟Brotli壓縮算法實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Nginx開啟Brotli壓縮算法實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程
這篇文章主要介紹了windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Nginx設(shè)置404錯(cuò)誤頁(yè)面跳轉(zhuǎn)的幾種方法總結(jié)
一個(gè)網(wǎng)站項(xiàng)目,肯定是避免不了404頁(yè)面的,通常使用Nginx作為Web服務(wù)器時(shí),有些相關(guān)配置方法,下面小編給大家?guī)?lái)了Nginx實(shí)現(xiàn)404頁(yè)面的幾種方法,感興趣的朋友一起看看吧2024-03-03
Nginx實(shí)現(xiàn)三種常見(jiàn)的虛擬主機(jī)配置方法
Nginx 是一款高性能的 Web 服務(wù)器,支持多種虛擬主機(jī)配置方式,能夠根據(jù)域名、IP 或端口區(qū)分不同的站點(diǎn),這種靈活性讓 Nginx 成為搭建多站點(diǎn)服務(wù)的首選工具,本文將帶你一步步實(shí)現(xiàn)三種常見(jiàn)的虛擬主機(jī)配置方法,需要的朋友可以參考下2025-03-03
Nginx出現(xiàn)403錯(cuò)誤,應(yīng)該如何解決
這篇文章主要介紹了Nginx出現(xiàn)403錯(cuò)誤,應(yīng)該如何解決?具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03

