正向代理與反向代理

小世界的野孩子發表於2019-07-30

前言

  使用Nginx做反向代理,部署負載均衡。為啥用Nginx做反向代理?反向代理是什麼意思?那麼又什麼是正向代理呢?一連串的問題把我給整懵了。不該如何回答。現在有時間,就慢慢的解決一下這些問題吧。

正向代理及反向代理

  正向代理

    我們還是先搞清楚啥是正向代理。我們先說個簡單而熟悉的事情吧,大家肯定都知道代購。代購是一個什麼角色呢?處於消費者和生產者之間。更像一個紐帶,一箇中間商。在這裡他叫”代購”,程式中可以叫他”代理”。每一個代購只針對某部分特殊的產品。然而通過代購去購買的人有是各式各樣不同的人。其中原理就是我要買某某國外的化妝品,買不到,找到對應的代購,他去買了然後再給我。我們可以理解這在程式中是正向代理。

                 正向代理(代購解說)

 

 

    在程式當中,當我們需要訪問某些網站但無法訪問的時候,就比如訪問國外的一些論壇,無法訪問。這是我們可以再香港或者沒過搭建一個伺服器,然後通過搭建的伺服器再去訪問想要訪問的網站,這就是所謂的正向代理了。(客戶端-正向代理伺服器-原始伺服器。配合代購的例子,還是比較好理解的了。買不到某物,訪問不到某網站,通過中間的代購或者伺服器來達到我買到某物或者客戶端訪問某網站的目的,就可以說是代理了。

               正向代理

 

    比如我現在目前使用的***軟體,就是通過配置美國那邊的伺服器配置來達到訪問Google資源的目的,它這個工具就充當了一個正向代理的作用。

  反向代理

    說完正向代理再看反向代理,反向代理恰好和正向代理有點相反了。通過正向代理訪問某些網站時,那些網站是不知道實際訪問的客戶端的,這裡隱藏了真實的客戶端。而反向代理,卻是隱藏了真實的伺服器,客戶端通過反向代理去訪問,並不知道訪問的是哪一個伺服器。

                 反向代理

 

    這裡當客戶端訪問伺服器的時候先經過反向代理伺服器,然後反向代理伺服器轉發請求給伺服器,至於是伺服器一還是伺服器二還是伺服器三的話,這個客戶端就不知道了。客戶端只要請求過來得到需要的東西就ok。這一過程也就是反向代理了。

使用場景

  上面我們詳細介紹了反向代理及正向代理。那到底有什麼用呢?有些地方為什麼用反向代理呢?

  首先我們看正向代理,具體可以幹啥:

    • 訪問原來無法訪問的資源,通過***訪問google資源
    • 使用使用緩衝特性,可以做快取,加速訪問資源
    • 對客戶端訪問授權,上網進行認證

  那麼反向代理呢?

    • 保護內網的安全,隱藏內網伺服器地址,防止Web的攻擊
    • 部署負載均衡,通過反向代理部署負載均衡優化網站

Nginx反向代理

  這裡我們提一下Nginx,比較常見的就是使用Nginx做反向代理或者部署負載均衡。其中Nginx僅僅只是實現反向代理的工具而已,具體Nginx的安裝及使用在之前的文章(Nginx安裝與代理)有提過。Nginx (engine x) 是一個高效能的HTTP和反向代理伺服器,Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件代理伺服器。其特點是佔有記憶體少,併發能力強。

總結

  不過說實話反向代理正向代理都是其名詞概念,實際上需要知道的是其內容,以及到底怎麼用用來幹啥的。不要每天喊著使用Nginx進行反向代理部署網站,到最後不知道啥是反向代理,啥是正向代理。這就有點小尷尬了。只有瞭解的更多一點才會用的更靈活一點。

 

      振作低沉的士氣,鼓舞消沉的信心,迸發澎湃的激情,舞動勤奮的雙手,用努力去創造奇蹟,用行動去開拓未來,精彩就一定會呈現!


 

 

  歡迎大家掃描下方二維碼,和我一起學習更多的C#知識

 

 

 

  

相關文章