大家好,我是IT修真院武漢分院第01期學(xué)員,一枚正直善良的web程序員。今天給大家分享一下,修真院官網(wǎng) java任務(wù)6中的深度思考:什么是nginx,什么是負(fù)載均衡???
1.背景介紹
什么是nginx,什么是負(fù)載均衡?
Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器以及電子郵件代理服務(wù)器,并在一個BSD-like協(xié)議下發(fā)行。
由俄羅斯的程序設(shè)計師lgor Sysoev所開發(fā),供俄國大型的入口網(wǎng)站及搜索引擎Rambler使用。
其特點是占有內(nèi)存少,并發(fā)能力強(qiáng),事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
負(fù)載均衡也稱負(fù)載共享,是指對系統(tǒng)中的負(fù)載情況進(jìn)行動態(tài)調(diào)整,以盡量消除或減少系統(tǒng)中各節(jié)點負(fù)載不均衡的現(xiàn)象。
具體實現(xiàn)方法是將過載節(jié)點上的任務(wù)轉(zhuǎn)移到其他輕載節(jié)點上,盡可能實現(xiàn)系統(tǒng)各節(jié)點的負(fù)載平衡,從而提高系統(tǒng)的吞吐量。
負(fù)載共享有利于統(tǒng)籌管理分布式系統(tǒng)中的各種資源,便于利用共享信息及其服務(wù)機(jī)制擴(kuò)大系統(tǒng)的處理能力。
2.知識剖析
在實際情況中,當(dāng)一個服務(wù)器有太多客戶端訪問,服務(wù)器并發(fā)數(shù)太高,我這里使用nginx負(fù)載均衡,把客戶端請求分配到多個web上,以此減輕服務(wù)器壓力
3.常見問題
如何啟動nginx?如何配置端口、打印日志內(nèi)容?
4.解決方案
在linux輸入 whereis nginx,就在那個文件下下的sbin文件夾輸入 ./nginx 啟動,配置端口等文件也是在該文件夾下。
我當(dāng)初因為沒分清nginx安裝目錄和配置文件卡了很久,覺得有必要說一下
5.編碼實戰(zhàn)
配置日志輸出信息和負(fù)載均衡,IP_HASH訪問

子域訪問

日志查看

6.擴(kuò)展思考
一.nginx正向代理和反向代理

舉個例子:
我是一個用戶,我訪問不了某網(wǎng)站,但是我能訪問一個代理服務(wù)器,這個代理服務(wù)器呢,他能訪問那個我不能訪問的網(wǎng)站,于是我先連上代理服務(wù)器,告訴他我需要那個無法訪問網(wǎng)站的內(nèi)容,代理服務(wù)器去取回來,然后返回給我。從網(wǎng)站的角度,只在代理服務(wù)器來取內(nèi)容的時候有一次記錄,有時候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網(wǎng)站。
二.nginx負(fù)載均衡不同的方式
1、Nginx的負(fù)載分發(fā)策略
Nginx?的?upstream目前支持的分配算法:1)、輪詢——1:1 輪流處理請求(默認(rèn))
每個請求按時間順序逐一分配到不同的應(yīng)用服務(wù)器,如果應(yīng)用服務(wù)器down掉,自動剔除,剩下的繼續(xù)輪詢。

2)、權(quán)重——you can you up
通過配置權(quán)重,指定輪詢幾率,權(quán)重和訪問比率成正比,用于應(yīng)用服務(wù)器性能不均的情況。

3)、ip_哈希算法
每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個應(yīng)用服務(wù)器,可以解決session共享的問題。

8.更多討論
詳見視頻:
問:根據(jù)什么原則向各個服務(wù)器分配請求,是當(dāng)一個服務(wù)器無法處理一定數(shù)量的請求時才分給另一個嗎?
答:輪詢、權(quán)重、ip_hash。默認(rèn)輪詢的話,當(dāng)一臺服務(wù)器down掉自動分配給另一個
問:那個ip_hash是記錄電腦IP 然后指定端口嗎?
答:是根據(jù)請求的客戶端的ip生成hash值,記錄改ip第一次訪問分配的服務(wù)器,以后就一直訪問這個。優(yōu)點是可以解決session共享的問題,缺點是加大了分配的服務(wù)器壓力
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現(xiàn)在開始,找個師兄,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷?!?。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長可見化,師兄1對1免費指導(dǎo)??靵砼c我一起學(xué)習(xí)吧