程序員別唬我系列之:反向代理
此代理非彼代理
看見『代理』二字就沖進(jìn)來的網(wǎng)監(jiān)大人,請(qǐng)不要激動(dòng),這篇文章說的并不是用來爬墻的『代理』技術(shù),而且針對(duì)Web服務(wù)器的一種代理技術(shù)~
通常我們所說的代理,都是指的客戶端向外界發(fā)起請(qǐng)求時(shí),并不是直接與目標(biāo)服務(wù)器連接,而是經(jīng)過一個(gè)代理服務(wù)器,將所有請(qǐng)求交給代理服務(wù)器,由它去負(fù)責(zé)連接外界的目標(biāo)服務(wù)器,同時(shí)從服務(wù)器返回的數(shù)據(jù),也經(jīng)過代理服務(wù)器,返回到客戶端。在外界看來,所有請(qǐng)求都是來自這臺(tái)代理服務(wù)器,這樣就成功的將客戶端隱藏在自己身后,起到了一種保護(hù)客戶端的作用。
而『反向代理』卻是反過來的,它是針對(duì)服務(wù)器的一種代理技術(shù)。反向代理服務(wù)器可以接受客戶端的請(qǐng)求,然后將它分發(fā)到被代理的服務(wù)器上,待這些服務(wù)器處理完請(qǐng)求后,再將結(jié)果轉(zhuǎn)發(fā)給客戶端,它是將服務(wù)器隱藏在自己的身后。從客戶端看來,它面對(duì)的只有一臺(tái)服務(wù)器,但是背后可能有1000臺(tái)服務(wù)器在提供服務(wù)。
『反向代理』這樣做有什么意義呢?
首先,它可以做『負(fù)載均衡』。比如說,對(duì)于同一個(gè)web服務(wù),有10臺(tái)服務(wù)器可以提供服務(wù),但是每臺(tái)服務(wù)器的負(fù)荷不太一樣,如果一個(gè)請(qǐng)求發(fā)送到負(fù)荷較高的服務(wù)器,那么它的處理時(shí)間可能會(huì)稍長一點(diǎn),但是客戶端是不知道哪一臺(tái)服務(wù)器比較空閑,所以將請(qǐng)求發(fā)送到『反向代理』服務(wù)器,它是知道每臺(tái)服務(wù)器的負(fù)載的,這樣由它將請(qǐng)求轉(zhuǎn)發(fā)到相對(duì)空閑的服務(wù)器,以便更快的響應(yīng)客戶端。
然后,它可以減輕后端服務(wù)器的一些壓力,比如很多靜態(tài)資源或者緩存數(shù)據(jù),可以直接放在反向代理服務(wù)器上,不用將這些請(qǐng)求傳遞到后端服務(wù)器,相對(duì)來說減輕了后端服務(wù)器的壓力。
它還可以對(duì)請(qǐng)求做進(jìn)一步的封裝和解封,比如想把所有請(qǐng)求升級(jí)到ssl加密連接,卻不想改造后端服務(wù)器,那么可以只在客戶端-反向代理服務(wù)器之間使用ssl加密連接,而代理服務(wù)器-后端服務(wù)器之間仍舊使用普通http連接,這樣就事半功倍了。
同時(shí),反向代理服務(wù)器還可以為后端服務(wù)器阻擋一些網(wǎng)絡(luò)攻擊,提升后臺(tái)服務(wù)器的安全性。
總之,反向代理服務(wù)器對(duì)于后端服務(wù)器,就是一個(gè)接口人的角色,它接洽了所有客戶端的請(qǐng)求,并且進(jìn)行簡(jiǎn)單的處理,然后分發(fā)到后端服務(wù)器。
#專欄作家#
給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(hào)(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開發(fā)若干年,對(duì)前端、后臺(tái)技術(shù)略懂,熱衷于對(duì)新的科技領(lǐng)域的探索。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Pixabay,基于CC0協(xié)議
戈
還在因?yàn)?#8221;不懂技術(shù)”被開發(fā)忽悠?15天系統(tǒng)化解鎖產(chǎn)品經(jīng)理必懂的程序/代碼、前端、后端、數(shù)據(jù)庫4大模塊基礎(chǔ)技術(shù)知識(shí)。助你日常溝通更順暢,產(chǎn)品設(shè)計(jì)不挖坑!
詳情戳>http://996.pm/7daXE 或咨詢起點(diǎn)學(xué)院蘑菇(wx:qdxymg)
什么情況下或者說什么樣的公司要使用反向代理服務(wù)器呢
反向代理和代理我怎么感覺是一樣的??
確實(shí)寫得好
我也是。。。沒看懂 ??
邏輯上是差不多,就是反一下。作用上可以起到均衡負(fù)載的作用,不過除此之外都一樣了= =
不錯(cuò),不錯(cuò),希望有更多的作品,贊!
感謝分享,技術(shù)貼看起來有點(diǎn)吃力 ??