Nginx常用功能
1祖秒、Http代理,反向代理:作為web服務(wù)器最常用的功能之一鹏往,尤其是反向代理冷蚂。
正向代理和反向代理
正向代理的概念
正向代理,也就是傳說中的代理,他的工作原理就像一個跳板,簡單的說,我是一個用戶,我訪問不了某網(wǎng)站,但是我能訪問一個代理服務(wù)器這個代理服務(wù)器呢,他能訪問那個我不能訪問的網(wǎng)站于是我先連上代理服務(wù)器,告訴他我需要那個無法訪問網(wǎng)站的內(nèi)容代理服務(wù)器去取回來,然后返回給我
從網(wǎng)站的角度,只在代理服務(wù)器來取內(nèi)容的時候有一次記錄有時候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網(wǎng)站
結(jié)論就是 正向代理 是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容痘番,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器)捉片,然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端」眨客戶端必須要進行一些特別的設(shè)置才能使用正向代理伍纫。
反向代理的概念
繼續(xù)舉例:例用戶訪問 http://ooxx.me/readme但ooxx.me上并不存在readme頁面他是偷偷從另外一臺服務(wù)器上取回來,然后作為自己的內(nèi)容吐給用戶
但用戶并不知情這很正常,用戶一般都很笨
這里所提到的 ooxx.me 這個域名對應(yīng)的服務(wù)器就設(shè)置了反向代理功能
結(jié)論就是 反向代理正好相反,對于客戶端而言它就像是原始服務(wù)器昂芜,并且客戶端不需要進行任何特別的設(shè)置莹规。客戶端向反向代理 的命名空間(name-space)中的內(nèi)容發(fā)送普通請求泌神,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請求良漱,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容 原本就是它自己的一樣欢际。
兩者區(qū)別
從用途 上來講:
正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑母市。正向代理還可以使用緩沖特性減少網(wǎng)絡(luò)使用率。反向代理的典型用途是將 防火墻后面的服務(wù)器提供給Internet用戶訪問损趋。反向代理還可以為后端的多臺服務(wù)器提供負(fù)載平衡患久,或為后端較慢的服務(wù)器提供緩沖服務(wù)。
另外浑槽,反向代理還可以啟用高級URL策略和管理技術(shù)墙杯,從而使處于不同web服務(wù)器系統(tǒng)的web頁面同時存在于同一個URL空間下。
從安全性 來講:
正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身括荡,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務(wù)高镐。
反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理畸冲。
2嫉髓、負(fù)載均衡
Nginx提供的負(fù)載均衡策略有2種:內(nèi)置策略和擴展策略。內(nèi)置策略為輪詢邑闲,加權(quán)輪詢算行,Ip hash。擴展策略苫耸,就天馬行空州邢,只有你想不到的沒有他做不到的啦,你可以參照所有的負(fù)載均衡算法褪子,給他一一找出來做下實現(xiàn)量淌。
上3個圖骗村,理解這三種負(fù)載均衡算法的實現(xiàn)
Ip hash算法,對客戶端請求的ip進行hash操作呀枢,然后根據(jù)hash結(jié)果將同一個客戶端ip的請求分發(fā)給同一臺服務(wù)器進行處理胚股,可以解決session不共享的問題。
3裙秋、web緩存
Nginx可以對不同的文件做不同的緩存處理琅拌,配置靈活,并且支持FastCGI_Cache摘刑,主要用于對FastCGI的動態(tài)程序進行緩存进宝。配合著第三方的ngx_cache_purge,對制定的URL緩存內(nèi)容可以的進行增刪管理枷恕。
4党晋、Nginx相關(guān)地址
源碼:https://trac.nginx.org/nginx/browser
官網(wǎng):http://www.nginx.org/