摘要:于是帶著以下兩個問題開始學(xué)習(xí)正向代理以及反向代理??蛻舳瞬拍苁褂谜虼?。傳送門前端詞典代理的概念及其應(yīng)用前端詞典滾動穿透問題的解決方案
前言
在平時的工作中,總是會遇到代理的概念。之前我只知道有代理這個概念,不過對其沒有一個清晰的理解。于是帶著以下兩個問題開始學(xué)習(xí)正向代理以及反向代理。
什么是正向代理,什么是反向代理
正向代理可以做什么,反向代理可以做什么
概念首先附上一張說明圖,先有一個整體的理解。
正向代理( Forward Proxy ):是指是一個位于客戶端和原始服務(wù)器之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容, 客戶端向代理發(fā)送一個請求并指定目標(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。客戶端才能使用正向代理。
反向代理( Reverse Proxy ):是指以代理服務(wù)器來接受 Internet 上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給 Internet 上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器。
特點 正向代理代理客戶;
隱藏真實的客戶,為客戶端收發(fā)請求,使真實客戶端對服務(wù)器不可見;
一個局域網(wǎng)內(nèi)的所有用戶可能被一臺服務(wù)器做了正向代理,由該臺服務(wù)器負責(zé) HTTP 請求;
意味著同服務(wù)器做通信的是正向代理服務(wù)器;
反向代理代理服務(wù)器;
隱藏了真實的服務(wù)器,為服務(wù)器收發(fā)請求,使真實服務(wù)器對客戶端不可見;
負載均衡服務(wù)器,將用戶的請求分發(fā)到空閑的服務(wù)器上;
意味著用戶和負載均衡服務(wù)器直接通信,即用戶解析服務(wù)器域名時得到的是負載均衡服務(wù)器的 IP ;
共同點都是做為服務(wù)器和客戶端的中間層
都可以加強內(nèi)網(wǎng)的安全性,阻止 web 攻擊
都可以做緩存機制
實際應(yīng)用 Nginx 服務(wù)器Nginx 服務(wù)器的功能有很多,諸如反向代理、負載均衡、靜態(tài)資源服務(wù)器等。
客戶端本來可以直接通過 HTTP 協(xié)議訪問服務(wù)器,不過我們可以在中間加上一個 Nginx 服務(wù)器,客戶端請求 Nginx 服務(wù)器,Nginx 服務(wù)器請求應(yīng)用服務(wù)器,然后將結(jié)果返回給客戶端,此時 Nginx 服務(wù)器就是反向代理服務(wù)器。
在虛擬主機的配置中配置反向代理# 虛擬主機的配置 server { listen 8080; # 監(jiān)聽的端口 server_name 192.168.1.1; # 配置訪問域名 root /data/toor; # 站點根目錄 error_page 502 404 /page/404.html; # 錯誤頁面 location ^~ /api/ { # 使用 /api/ 代理 proxy_pass 的值 proxy_pass http://192.168.20.1:8080; # 被代理的應(yīng)用服務(wù)器 HTTP 地址 } }
以上簡單的配置就可以實現(xiàn)反向代理的功能。
當(dāng)然反向代理也可以處理跨域問題,在 Vue 中就可以使用 proxyTable 這個屬性進行相關(guān)的配置來解決跨域問題帶來的煩惱。配置如下:
... proxyTable: { "/weixin": { target: "http://192.168.48.11:8100/", // 接口的域名 secure: false, // 如果是 https 接口,需要配置這個參數(shù) changeOrigin: true, // 如果接口跨域,需要進行這個參數(shù)配置 pathRewrite: { "^/weixin": "" } }, }, ...負載均衡的配置
# upstream 表示負載服務(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 次失敗即認為主機不可用 }
負載均衡即將 請求/數(shù)據(jù) 輪詢分攤到多個服務(wù)器上執(zhí)行,負載均衡的關(guān)鍵在于 均勻。
也可以通過 ip-hash 的方式,根據(jù)客戶端 ip 地址的 hash 值將請求分配給固定的某一個服務(wù)器處理。
另外,服務(wù)器的硬件配置可能不同,配置好的服務(wù)器可以處理更多的請求,這時可以通過 weight 參數(shù)來控制。
以上。
前端詞典系列本文是《前端詞典》系列的第一篇文章,這個系列會持續(xù)更新,每一期我都會講一個出現(xiàn)頻率較高的知識點。希望大家在閱讀的過程當(dāng)中可以斧正文中出現(xiàn)不嚴謹或是錯誤的地方,本人將不勝感激;若通過本系列而有所得,本人亦將不勝欣喜。
內(nèi)容: 前端以及網(wǎng)絡(luò)相關(guān)知識點的介紹并加以實際應(yīng)用作為輔助。
目的: 這個系列的文章可以對讀者起到一點幫助,解開一些迷惑。
希望各位多指點一二,不吝賜教。
傳送門【前端詞典】代理的概念及其應(yīng)用
【前端詞典】滾動穿透問題的解決方案
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100825.html
摘要:于是帶著以下兩個問題開始學(xué)習(xí)正向代理以及反向代理。客戶端才能使用正向代理。傳送門前端詞典代理的概念及其應(yīng)用前端詞典滾動穿透問題的解決方案 前言 在平時的工作中,總是會遇到代理的概念。之前我只知道有代理這個概念,不過對其沒有一個清晰的理解。于是帶著以下兩個問題開始學(xué)習(xí)正向代理以及反向代理。 什么是正向代理,什么是反向代理 正向代理可以做什么,反向代理可以做什么 概念 首先附上一張說明...
摘要:接下就說下我對滾動穿透問題解決方案探索的過程,希望對大家有點啟發(fā)。心想來了突然意識到寫彈窗的時候忘記處理滾動穿透的問題了。下期預(yù)告前端詞典繼承必懂知識點傳送門前端詞典代理的概念及其應(yīng)用前端詞典滾動穿透問題的解決方案 背景 產(chǎn)品有三寶,彈窗,浮層加引導(dǎo); 設(shè)計有三寶,透明,陰影加圓角; 運營有三寶,短信,推送加紅包; 程序員有一寶,這個做不了。 隨著移動端市場的份額越大,需求就越多...
摘要:接下就說下我對滾動穿透問題解決方案探索的過程,希望對大家有點啟發(fā)。心想來了突然意識到寫彈窗的時候忘記處理滾動穿透的問題了。下期預(yù)告前端詞典繼承必懂知識點傳送門前端詞典代理的概念及其應(yīng)用前端詞典滾動穿透問題的解決方案 背景 產(chǎn)品有三寶,彈窗,浮層加引導(dǎo); 設(shè)計有三寶,透明,陰影加圓角; 運營有三寶,短信,推送加紅包; 程序員有一寶,這個做不了。 隨著移動端市場的份額越大,需求就越多...
摘要:五六月份推薦集合查看最新的請點擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
閱讀 1793·2023-04-25 14:33
閱讀 3395·2021-11-22 15:22
閱讀 2195·2021-09-30 09:48
閱讀 2706·2021-09-14 18:01
閱讀 1752·2019-08-30 15:55
閱讀 3017·2019-08-30 15:53
閱讀 2154·2019-08-30 15:44
閱讀 661·2019-08-30 10:58