1.什麼是代理服務器(Proxy Serve)?瀏覽器
提供代理服務的電腦系統或其它類型的網絡終端,代替網絡用戶去取得網絡信息。緩存
2.爲何使用代理服務器?
提升訪問速度:
因爲目標主機返回的數據能夠存放在代理服務器中,因此客戶下一次訪問此站點相同的數據時,會直接從代理服務器的中讀取,起到了緩存的做用,對於熱門網站能明顯提升訪問速度。安全
防火牆做用:
因爲全部的客戶機請求都必須經過代理服務器訪問遠程站點,所以能夠在代理服務器上設限,過濾不安全信息。同時正向代理中客戶端能夠隱藏本身的IP,免受攻擊。服務器
突破訪問限制:
互聯網上有許多開發的代理服務器,客戶機在訪問受限時,可經過不受限的代理服務器訪問目標站點,通俗說,咱們使用的FQ瀏覽器就是利用了代理服務器,能夠直接訪問外網。微信
3.正向代理(Forward Proxy)
正向代理:一個位於客戶端和原始服務器之間的服務器,客戶端爲了從目標服務器取得內容,向代理代理髮送一個請求並指定了目標服務器,而後代理服務器向目標服務器轉發請求並將得到的內容返回給客戶端。平時咱們說的代理就是指正向代理。
舉個例子:咱們想從Google上查詢API文檔,但因爲某種緣由訪問不了,因此藉助代理服務器(如:ShadowSock),而後讓它去Google獲取文檔信息,最後返回給咱們。
那麼,此處的ShadowSock就是正向代理,爲客戶端作了代理。此過程當中,Google做爲服務端其實並不知道咱們(客戶端)訪問了它,只知道代理服務器(ShadowSock)訪問了它。通俗點就是爲服務端做了代理。網絡
4.反向代理(Reserve Proxy)
反向代理:一個部署在服務端,用於接受客戶端請求,且將客戶端請求轉發給真實(內部)服務器的代理者(服務器),並將真實服務器的反饋結果返回給代理者,最後由代理者將結果返回給客戶端。
舉個例子:咱們想給本身的微信服務號申請認證服務,那麼咱們向微信發起了認證請求,此時微信並不本身去做認證,而是將此任務分派給與其合做的認證商,最後認證商返回結果給微信,再由微信告知咱們認證是否成功。
那麼,此處的微信服務號認證服務就是反向代理,爲服務端(微信)做了代理。此過程當中,咱們做爲客戶端並不知道咱們的認證請求是由認證商完成的,只知道微信幫我完成了認證。負載均衡
5.正向代理和反向代理的區別
位置不一樣:
正向代理,架設在客戶機和目標主機之間;
反向代理,架設在服務器端;網站
代理對象不一樣:
正向代理,代理客戶端,服務端不知道實際發起請求的客戶端;
反向代理,代理服務端,客戶端不知道實際提供服務的服務端;代理
用途不一樣:
正向代理,爲防火牆內的客戶端提供訪問網絡的途徑;
反向代理,將防火牆內的服務器提供給網絡訪問請求;對象
安全性不一樣:
正向代理容許客戶端經過它訪問任意網站而且隱藏客戶端自身,所以必須採起安全措施以確保僅爲受權的客戶端提供服務
反向代理的客戶端對服務端都是透明的,但客戶端卻並不知道本身訪問的是哪一個服務端
6.正向代理的應用
1. 訪問原來沒法訪問的資源
2. 用做緩存,加速訪問速度
3. 對客戶端訪問受權,上網進行認證
4. 代理能夠記錄用戶訪問記錄(上網行爲管理),對外隱藏用戶信息
7.反向代理的應用 1. 保護內網安全 2. 負載均衡 3. 緩存,減小服務器的壓力 Nginx做爲著名的反向代理服務器,安裝在服務端,主要用於轉發客戶端請求,並把請求合理轉發給後臺哪臺真實服務器來處理當前請求。