1. 程式人生 > >驀然回首,那人卻在燈火闌珊處。

驀然回首,那人卻在燈火闌珊處。

文章目錄

前言

Nginx作為時下最流行的HTTP伺服器之一,同時它是一個反向代理伺服器,提到反向代理伺服器,有同學可能覺得這個概念很模糊,如果說到代理,他可能明白,但是再引出一個正向代理,估計懵了,本文將嘗試用淺顯易懂的比方把這兩個概念解釋清楚。

正向代理

A同學在大眾創業、萬眾創新的大時代背景下開啟他的創業之路,目前他遇到的最大的一個問題就是啟動資金,於是他決定去找馬雲爸爸借錢,可想而知,最後碰一鼻子灰回來了,情急之下,他想到一個辦法,找關係開後門,經過一番訊息打探,原來A同學的大學老師王老師是馬雲的同學,於是A同學找到王老師,託王老師幫忙去馬雲那借500萬過來,當然最後事成了。不過馬雲並不知道這錢是A同學借的,馬雲是借給王老師的,最後由王老師轉交給A同學。這裡的王老師在這個過程中扮演了一個非常關鍵的角色,就是代理,也可以說是正向代理,王老師代替A同學辦這件事,這個過程中,真正借錢的人是誰,馬雲是不知道的,這點非常關鍵。
我們常說的代理也就是隻正向代理,正向代理的過程,它隱藏了真實的請求客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被代理伺服器代替來請求,知名的科學上網工具shadowsocks 扮演的就是典型的正向代理角色。在天朝用瀏覽器訪問

www.google.com 時,被殘忍的拒絕了,於是你可以在國外搭建一臺代理伺服器,讓代理幫我去請求google.com,代理把請求返回的相應結構再返回給我。
在這裡插入圖片描述

反向代理

大家都有過這樣的經歷,撥打10086客服電話,可能一個地區的10086客服有幾個或者幾十個,你永遠都不需要關心在電話那頭的是哪一個,叫什麼,男的,還是女的,漂亮的還是帥氣的,你都不關心,你關心的是你的問題能不能得到專業的解答,你只需要撥通了10086的總機號碼,電話那頭總會有人會回答你,只是有時慢有時快而已。那麼這裡的10086總機號碼就是我們說的反向代理。客戶不知道真正提供服務人的是誰。
反向代理隱藏了真實的服務端,當我們請求 www.baidu.com

的時候,就像撥打10086一樣,背後可能有成千上萬臺伺服器為我們服務,但具體是哪一臺,你不知道,也不需要知道,你只需要知道反向代理伺服器是誰就好了,www.baidu.com 就是我們的反向代理伺服器,反向代理伺服器會幫我們把請求轉發到真實的伺服器那裡去。Nginx就是效能非常好的反向代理伺服器,用來做負載均衡。
在這裡插入圖片描述

區別

正向代理代理的物件是客戶端,反向代理代理的物件是服務端