【前端词典】如何向老板解释反向代理
【前端詞典】如何向老板解釋反向代理
前言
現(xiàn)在看到的這篇文章是修改后的第三個(gè)版本。
由于我家老板看過(guò)之后,對(duì)這篇文章的評(píng)價(jià)是:寫(xiě)的不錯(cuò),語(yǔ)句是通順的,排版是可以的,但反向代理是什么還是不清楚?所以我就想嘗試著向非 IT 工作者解釋“正向代理”和“反向代理”。
接下來(lái)我會(huì)先嘗試面向大眾,來(lái)解釋“代理”的概念。在從專業(yè)的角度解釋“正向代理”和“反向代理”。
概念實(shí)例化
在講代理的概念之前我先講個(gè)類比。也是我向我家老板解釋的過(guò)程。
?
還好我反應(yīng)機(jī)敏,要不然這個(gè)月的零花錢(qián)就要替我擋一刀了。可是我該怎么解釋呢?還要讓沒(méi)有編程語(yǔ)言基礎(chǔ)的人也聽(tīng)懂,傷腦筋啊!?
在沒(méi)有思緒的時(shí)候,她突然問(wèn)我晚上吃了沒(méi)有?這不就是很好的例子嗎?
?
?
解釋了這么久,不知道是真的懂了,還是因?yàn)樘Я恕2贿^(guò)我有錢(qián)吃肉了。
接下來(lái)我們就認(rèn)真的看看“正向代理”和“反向代理”
概念
首先看看說(shuō)明圖,先有一個(gè)整體的理解。
?
?
正向代理( Forward Proxy ):
是指是一個(gè)位于客戶端和原始服務(wù)器之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容, 客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端??蛻舳瞬拍苁褂谜虼?。
反向代理( Reverse Proxy ):
是指以代理服務(wù)器來(lái)接受 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ù)器。
接下來(lái)我提煉一下各自的特點(diǎn)。
特點(diǎn)
正向代理
反向代理
共同點(diǎn)
區(qū)別
說(shuō)了這么多,現(xiàn)在說(shuō)說(shuō)代理在工作中的時(shí)機(jī)應(yīng)用場(chǎng)景吧。
實(shí)際應(yīng)用
FQ軟件 —— 正向代理
我們知道在國(guó)內(nèi)用訪問(wèn)?www.google.com?是無(wú)法訪問(wèn)的,因?yàn)檎G闆r下是會(huì)被 GFW 限制訪問(wèn)的。
可是你還是想使用 google 來(lái)上網(wǎng)的話,這個(gè)時(shí)候我們就需要一些代理(FQ軟件)來(lái)幫我們?nèi)フ?qǐng)求?www.google.com,代理再把響應(yīng)結(jié)果返回給你。
GFW 的作用主要是用于分析和過(guò)濾中國(guó)境內(nèi)外網(wǎng)絡(luò)間的互相訪問(wèn)。也就是說(shuō),他不僅能限制國(guó)內(nèi)網(wǎng)民訪問(wèn)境外的某些站點(diǎn),也能限制國(guó)外用戶訪問(wèn)國(guó)內(nèi)的站點(diǎn)。 我們通常說(shuō)的“被墻”,就是指訪問(wèn)被 GFW 所限制。而”FQ“,顧名思義,則是突破 GFW 的限制。
Nginx 服務(wù)器 —— 反向代理
Nginx 服務(wù)器的功能有很多,諸如反向代理、負(fù)載均衡、靜態(tài)資源服務(wù)器等。
客戶端本來(lái)可以直接通過(guò) HTTP 協(xié)議訪問(wèn)服務(wù)器,不過(guò)我們可以在中間加上一個(gè) Nginx 服務(wù)器,客戶端請(qǐng)求 Nginx 服務(wù)器,Nginx 服務(wù)器請(qǐng)求應(yīng)用服務(wù)器,然后將結(jié)果返回給客戶端,此時(shí) Nginx 服務(wù)器就是反向代理服務(wù)器。
在虛擬主機(jī)的配置中配置反向代理
# 虛擬主機(jī)的配置 server {listen 8080; # 監(jiān)聽(tīng)的端口server_name 192.168.1.1; # 配置訪問(wèn)域名root /data/toor; # 站點(diǎn)根目錄error_page 502 404 /page/404.html; # 錯(cuò)誤頁(yè)面 location ^~ /api/ { # 使用 /api/ 代理 proxy_pass 的值 proxy_pass http://192.168.20.1:8080; # 被代理的應(yīng)用服務(wù)器 HTTP 地址 } } 復(fù)制代碼以上簡(jiǎn)單的配置就可以實(shí)現(xiàn)反向代理的功能。
當(dāng)然反向代理也可以處理跨域問(wèn)題。
對(duì)于使用 vue-cli 搭建的工程而言,我們知道 vue-cli 采用 http-proxy-middleware 插件來(lái)進(jìn)行代理服務(wù)器等各項(xiàng)配置。
所以我們可以利用 proxyTable,設(shè)置地址映射表。即使用?proxyTable?這個(gè)屬性進(jìn)行相關(guān)的配置來(lái)解決跨域問(wèn)題帶來(lái)的煩惱。配置如下:
... proxyTable: {'/weixin': {target: 'http://192.168.20.1:8080/', // 接口的域名secure: false, // 如果是 https 接口,需要配置這個(gè)參數(shù)changeOrigin: true, // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置pathRewrite: {'^/weixin': '' } }, }, ... 復(fù)制代碼負(fù)載均衡的配置
# upstream 表示負(fù)載服務(wù)器池,定義名字為 my upstream my {server 192.168.2.1:8080 weight=1 max_fails=2 fail_timeout=30s;server 192.168.2.2:8080 weight=1 max_fails=2 fail_timeout=30s;server 192.168.2.3:8080 weight=1 max_fails=2 fail_timeout=30s;server 192.168.2.4:8080 weight=1 max_fails=2 fail_timeout=30s;# 即在 30s 內(nèi)嘗試 2 次失敗即認(rèn)為主機(jī)不可用} 復(fù)制代碼負(fù)載均衡即將?請(qǐng)求/數(shù)據(jù)?輪詢分?jǐn)偟蕉鄠€(gè)服務(wù)器上執(zhí)行,負(fù)載均衡的關(guān)鍵在于?均勻。
也可以通過(guò)?ip-hash?的方式,根據(jù)客戶端 ip 地址的 hash 值將請(qǐng)求分配給固定的某一個(gè)服務(wù)器處理。
另外,服務(wù)器的硬件配置可能不同,配置好的服務(wù)器可以處理更多的請(qǐng)求,這時(shí)可以通過(guò)?weight參數(shù)來(lái)控制。
Vue 相關(guān)文章輸出計(jì)劃
最近總有朋友問(wèn)我 Vue 相關(guān)的問(wèn)題,因此接下來(lái)我會(huì)輸出 9 篇 Vue 相關(guān)的文章,希望對(duì)大家有一定的幫助。我會(huì)保持在 7 到 10 天更新一篇。
建議你關(guān)注我的公眾號(hào),第一時(shí)間就可以接收最新的文章。
?
?
如果你想加群交流,也可以添加有點(diǎn)智能的機(jī)器人,自動(dòng)拉你進(jìn)群:
?
熱門(mén)文章傳送門(mén)
轉(zhuǎn)載于:https://www.cnblogs.com/tongongV/p/10957910.html
總結(jié)
以上是生活随笔為你收集整理的【前端词典】如何向老板解释反向代理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: saltstack(八):saltsta
- 下一篇: Asp.Net Core 第02局:Pr