負載均衡 建立在現(xiàn)有網(wǎng)絡結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴展網(wǎng)絡設備和服務器的帶寬肾扰、增加吞吐量追迟、加強網(wǎng)絡數(shù)據(jù)處理能力、提高網(wǎng)絡的靈活性和可用性筋粗。(百度百科的解釋)
在我看來就是防止一臺服務器在承受不住大流量的訪問而產(chǎn)生宕機時策橘,解決宕機的一種方案。也就是利用N臺服務器來平均分擔主服務器的流量娜亿,將流量轉(zhuǎn)向到其他服務器丽已。
Nginx安裝教程(https://lnmp.org/install.html)
實驗環(huán)境
由于沒有實體的服務器,所以本次實驗直接在VMware虛擬機里安裝了三臺服務器
1买决、硬件:
I5-CPU
16G的內(nèi)存(虛擬機里的服務器開啟的越多沛婴,占用的內(nèi)存越多)
2、軟件:
VM_12
CentOS_7
Nginx
3督赤、配置安排
實驗域名:long.com
A服務器IP:192.168.7.240(主)
B服務器IP:192.168.7.237(從)
C服務器IP:192.168.7.231(從)
部署安排:
A服務器為主服務器嘁灯,域名直接解析在該服務器上;訪問long.com之后躲舌,由A服務器負載均衡到B服務器和C服務器上丑婿。
1、域名解析:
打開hosts文件
vi /etc/hosts
末尾添加
192.168.7.240 long.com
保存退出,然后使用 ping long.com
測試是否設置成功
2羹奉、A服務器的nginx.conf設置
獲取 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服務器
3秒旋、B、C服務器的nginx.conf設置
打開 nginx.conf尘奏,在http段加入以下代碼滩褥。
server{ listen 80; server_name long.com; index index.html; root /home/wwwroot/default; }
保存并重啟nginx 之后分別在B、C服務器的 /home/wwwroot/default
(這是我的Nginx服務器的訪問文件存放目錄) 目錄下寫一個不同內(nèi)容的index.html文件炫加,以作區(qū)分瑰煎。
4、測試
在A服務器中輸入命令 curl long.com
可得在B或C服務器添加的index.html文件內(nèi)容
完成以上操作俗孝,可實現(xiàn)long.com的負載均衡
以上例子中酒甸,我們都是應用到了主服務器負載均衡到其它服務器上,那么主服務器本身能不能也加在服務器列表中赋铝,這樣就不會白白浪費一臺純當做轉(zhuǎn)發(fā)功能的服務器插勤。
現(xiàn)在我們讓A服務器也提供站點服務。
首先我們先來分析一下革骨,如果添加主服務器到upstream中农尖,那么可能會有以下兩種情況發(fā)生:
1、主服務器轉(zhuǎn)發(fā)到了其它IP上良哲,其它IP服務器正常處理盛卡;
2、主服務器轉(zhuǎn)發(fā)到了自己IP上筑凫,然后又進到主服務器分配IP那里滑沧,假如一直分配到本機,則會造成一個死循環(huán)巍实。
怎么解決這個問題呢滓技?
因為80端口已經(jīng)用來監(jiān)聽負載均衡的處理,那么本服務器上就不能再使用80端口來處理long.com的訪問請求棚潦,要用一個新的端口 8080令漂。于是我們把主服務器的 nginx.conf 加入以下一段代碼:
server { listen 8080; server_name long.com; index index.html index.htm index.php; root /home/wwwroot/default; }
注意:添加之后,應該有兩個 server
重啟 nginx 之后輸入 curl long.com:8080
驗證A服務器是否能訪問
能正常訪問瓦盛,那么我們就可以把主服務器添加到upstream中洗显,但是端口要改一下,如下代碼:
upstream long.com { server 192.168.7.237:80; server 192.168.7.231:80; server 127.0.0.1:8080; }
這里可以添加主服務器IP192.168.7.240或者127.0.0.1均可以原环,都表示訪問自己挠唆。
重啟Nginx,然后再來訪問long.com看看會不會分配到主服務器上嘱吗。
參考別人教程玄组,再結(jié)合自己的總結(jié)滔驾,綜合而成!