Nginx負(fù)載均衡簡單實(shí)例

負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。(百度百科的解釋)
在我看來就是防止一臺(tái)服務(wù)器在承受不住大流量的訪問而產(chǎn)生宕機(jī)時(shí),解決宕機(jī)的一種方案。也就是利用N臺(tái)服務(wù)器來平均分擔(dān)主服務(wù)器的流量,將流量轉(zhuǎn)向到其他服務(wù)器。


Nginx安裝教程(https://lnmp.org/install.html

實(shí)驗(yàn)環(huán)境

由于沒有實(shí)體的服務(wù)器,所以本次實(shí)驗(yàn)直接在VMware虛擬機(jī)里安裝了三臺(tái)服務(wù)器

1、硬件:

I5-CPU
16G的內(nèi)存(虛擬機(jī)里的服務(wù)器開啟的越多,占用的內(nèi)存越多)

2、軟件:

VM_12
CentOS_7
Nginx

3、配置安排

實(shí)驗(yàn)域名:long.com
A服務(wù)器IP:192.168.7.240(主)
B服務(wù)器IP:192.168.7.237(從)
C服務(wù)器IP:192.168.7.231(從)


部署安排:

A服務(wù)器為主服務(wù)器,域名直接解析在該服務(wù)器上;訪問long.com之后,由A服務(wù)器負(fù)載均衡到B服務(wù)器和C服務(wù)器上。

1、域名解析:

打開hosts文件
vi /etc/hosts
末尾添加
192.168.7.240 long.com
保存退出,然后使用 ping long.com 測試是否設(shè)置成功

2、A服務(wù)器的nginx.conf設(shè)置

獲取 nginx.conf 路徑
ps aux | grep nginx
打開 nginx.conf 文件
vi /usr/local/nginx/conf/nginx.conf

在http段添加以下代碼
upstream long.com { server 192.168.7.237:80; server 192.168.7.231:80; } server{ listen 80; server_name long.com; location / { proxy_pass http://long.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
注意:可用 nginx -t -c /usr/local/nginx/conf/nginx.conf測試nginx.conf配置文件是否正確
保存并重啟nginx服務(wù)器

3、B、C服務(wù)器的nginx.conf設(shè)置

打開 nginx.conf,在http段加入以下代碼。
server{ listen 80; server_name long.com; index index.html; root /home/wwwroot/default; }
保存并重啟nginx 之后分別在B、C服務(wù)器的 /home/wwwroot/default(這是我的Nginx服務(wù)器的訪問文件存放目錄) 目錄下寫一個(gè)不同內(nèi)容的index.html文件,以作區(qū)分。

4、測試

在A服務(wù)器中輸入命令 curl long.com 可得在B或C服務(wù)器添加的index.html文件內(nèi)容
完成以上操作,可實(shí)現(xiàn)long.com的負(fù)載均衡


以上例子中,我們都是應(yīng)用到了主服務(wù)器負(fù)載均衡到其它服務(wù)器上,那么主服務(wù)器本身能不能也加在服務(wù)器列表中,這樣就不會(huì)白白浪費(fèi)一臺(tái)純當(dāng)做轉(zhuǎn)發(fā)功能的服務(wù)器。
現(xiàn)在我們讓A服務(wù)器也提供站點(diǎn)服務(wù)。
首先我們先來分析一下,如果添加主服務(wù)器到upstream中,那么可能會(huì)有以下兩種情況發(fā)生:
1、主服務(wù)器轉(zhuǎn)發(fā)到了其它IP上,其它IP服務(wù)器正常處理;
2、主服務(wù)器轉(zhuǎn)發(fā)到了自己IP上,然后又進(jìn)到主服務(wù)器分配IP那里,假如一直分配到本機(jī),則會(huì)造成一個(gè)死循環(huán)。

怎么解決這個(gè)問題呢?

因?yàn)?0端口已經(jīng)用來監(jiān)聽負(fù)載均衡的處理,那么本服務(wù)器上就不能再使用80端口來處理long.com的訪問請求,要用一個(gè)新的端口 8080。于是我們把主服務(wù)器的 nginx.conf 加入以下一段代碼:
server { listen 8080; server_name long.com; index index.html index.htm index.php; root /home/wwwroot/default; }
注意:添加之后,應(yīng)該有兩個(gè) server
重啟 nginx 之后輸入 curl long.com:8080 驗(yàn)證A服務(wù)器是否能訪問
能正常訪問,那么我們就可以把主服務(wù)器添加到upstream中,但是端口要改一下,如下代碼:
upstream long.com { server 192.168.7.237:80; server 192.168.7.231:80; server 127.0.0.1:8080; }
這里可以添加主服務(wù)器IP192.168.7.240或者127.0.0.1均可以,都表示訪問自己。
重啟Nginx,然后再來訪問long.com看看會(huì)不會(huì)分配到主服務(wù)器上。

參考別人教程,再結(jié)合自己的總結(jié),綜合而成!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 負(fù)載均衡是我們大流量網(wǎng)站要做的一個(gè)東西,下面我來給大家介紹在Nginx服務(wù)器上進(jìn)行負(fù)載均衡配置方法,希望對有需要的...
    owen_he閱讀 486評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • 1 負(fù)載均衡 先來簡單了解一下什么是負(fù)載均衡,單從字面上的意思來理解就可以解釋N臺(tái)服務(wù)器平均分擔(dān)負(fù)載,不會(huì)因...
    尾巴哥de日常閱讀 1,065評論 0 3
  • 鬧市聽得到山羊的叫聲 水里看得見杜鵑在游泳 草鞋在地板上行走 桌子在房間里唱歌 我拿著筆寫未完成的故事 故事里你是...
    二向箔倩閱讀 327評論 0 4
  • 我是沈非,我在簡書。 管先生是一位上市企業(yè)的財(cái)務(wù)總監(jiān),并且是元老級別的那種,洞悉了企業(yè)里所有所有的一切,能見光的,...
    中雨工作室閱讀 23,651評論 12 14

友情鏈接更多精彩內(nèi)容