nginx反向代理原理讲解
一 、概述??????????
? ? ? ?反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受Internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器;并將從服務(wù)器上得到的結(jié)果返回給Internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。
? ? ? ?通常的代理服務(wù)器,只用于代理內(nèi)部網(wǎng)絡(luò)對(duì)Internet的連接請(qǐng)求,客戶機(jī)必須指定代理服務(wù)器,并將本來要直接發(fā)送到Web服務(wù)器上的http請(qǐng)求發(fā)送到代理服務(wù)器中。當(dāng)一個(gè)代理服務(wù)器能夠代理外部網(wǎng)絡(luò)上的主機(jī),訪問內(nèi)部網(wǎng)絡(luò)時(shí),這種代理服務(wù)的方式稱為反向代理服務(wù)。
二、反向代理服務(wù)器的工作原理
? ? ? ?反向代理服務(wù)器通常有兩種模型,它可以作為內(nèi)容服務(wù)器的替身,也可以作為內(nèi)容服務(wù)器集群的負(fù)載均衡器。
1、作內(nèi)容服務(wù)器的替身 ? ? ? ? ? ? ? ? ? ??
? ? ? ?如果您的內(nèi)容服務(wù)器具有必須保持安全的敏感信息,如信用卡號(hào)數(shù)據(jù)庫(kù),可在防火墻外部設(shè)置一個(gè)代理服務(wù)器作為內(nèi)容服務(wù)器的替身。當(dāng)外部客戶機(jī)嘗試訪問內(nèi)容服務(wù)器時(shí),會(huì)將其送到代理服務(wù)器。實(shí)際內(nèi)容位于內(nèi)容服務(wù)器上,在防火墻內(nèi)部受到安全保護(hù)。代理服務(wù)器位于防火墻外部,在客戶機(jī)看來就像是內(nèi)容服務(wù)器。
? ? ? ?當(dāng)客戶機(jī)向站點(diǎn)提出請(qǐng)求時(shí),請(qǐng)求將轉(zhuǎn)到代理服務(wù)器。然后,代理服務(wù)器通過防火墻中的特定通路,將客戶機(jī)的請(qǐng)求發(fā)送到內(nèi)容服務(wù)器。內(nèi)容服務(wù)器再通過該通道將結(jié)果回傳給代理服務(wù)器。代理服務(wù)器將檢索到的信息發(fā)送給客戶機(jī),好像代理服務(wù)器就是實(shí)際的內(nèi)容服務(wù)器(參見圖 2)。如果內(nèi)容服務(wù)器返回錯(cuò)誤消息,代理服務(wù)器會(huì)先行截取該消息并更改標(biāo)頭中列出的任何 URL,然后再將消息發(fā)送給客戶機(jī)。如此可防止外部客戶機(jī)獲取內(nèi)部?jī)?nèi)容服務(wù)器的重定向 URL。
? ? ? ?這樣,代理服務(wù)器就在安全數(shù)據(jù)庫(kù)和可能的惡意攻擊之間提供了又一道屏障。與有權(quán)訪問整個(gè)數(shù)據(jù)庫(kù)的情況相對(duì)比,就算是僥幸攻擊成功,作惡者充其量也僅限于訪問單個(gè)事務(wù)中所涉及的信息。未經(jīng)授權(quán)的用戶無(wú)法訪問到真正的內(nèi)容服務(wù)器,因?yàn)榉阑饓ν分辉试S代理服務(wù)器有權(quán)進(jìn)行訪問。
? ? ? ? 可以配置防火墻路由器,使其只允許特定端口上的特定服務(wù)器(在本例中為其所分配端口上的代理服務(wù)器)有權(quán)通過防火墻進(jìn)行訪問,而不允許其他任何機(jī)器進(jìn)出。
2、作為內(nèi)容服務(wù)器的負(fù)載均衡器
? ? ? ? 可以在一個(gè)組織內(nèi)使用多個(gè)代理服務(wù)器來平衡各 Web 服務(wù)器間的網(wǎng)絡(luò)負(fù)載。在此模型中,可以利用代理服務(wù)器的高速緩存特性,創(chuàng)建一個(gè)用于負(fù)載平衡的服務(wù)器池。此時(shí),代理服務(wù)器可以位于防火墻的任意一側(cè)。如果 Web 服務(wù)器每天都會(huì)接收大量的請(qǐng)求,則可以使用代理服務(wù)器分擔(dān) Web 服務(wù)器的負(fù)載并提高網(wǎng)絡(luò)訪問效率。
? ? ? ? 對(duì)于客戶機(jī)發(fā)往真正服務(wù)器的請(qǐng)求,代理服務(wù)器起著中間調(diào)停者的作用。代理服務(wù)器會(huì)將所請(qǐng)求的文檔存入高速緩存。如果有不止一個(gè)代理服務(wù)器,DNS 可以采用“循環(huán)復(fù)用法”選擇其 IP 地址,隨機(jī)地為請(qǐng)求選擇路由。客戶機(jī)每次都使用同一個(gè) URL,但請(qǐng)求所采取的路由每次都可能經(jīng)過不同的代理服務(wù)器。
? ? ? ? 可以使用多個(gè)代理服務(wù)器來處理對(duì)一個(gè)高用量?jī)?nèi)容服務(wù)器的請(qǐng)求,這樣做的好處是內(nèi)容服務(wù)器可以處理更高的負(fù)載,并且比其獨(dú)自工作時(shí)更有效率。在初始啟動(dòng)期間,代理服務(wù)器首次從內(nèi)容服務(wù)器檢索文檔,此后,對(duì)內(nèi)容服務(wù)器的請(qǐng)求數(shù)會(huì)大大下降。
nginx反向代理原理講解及配置:https://www.cnblogs.com/anruy/p/4989161.html?
總結(jié)
以上是生活随笔為你收集整理的nginx反向代理原理讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 限制HTTP数据包发送Referer
- 下一篇: 文件上传绕过姿势