代理伺服器與反向代理伺服器的區別

knqiufan發表於2018-07-14

說到代理伺服器,大部分人都應該比較熟悉了。記得在學校的時候因為校園網無法訪問國外網站,因此經常使用代理來訪問國外的網站。但是提到反向代理伺服器可能大部分人就比較陌生,對於一般的代理伺服器與反向代理伺服器的區別估計也不是那麼清楚。

因工作需要就研究了一下,搞清了是怎麼回事,這裡做個筆記,也為大家所共享。

代理伺服器通常分為兩類,即轉發代理(forward proxy)伺服器和反向代理(reverse proxy)伺服器。轉發代理伺服器又通常簡稱為代理伺服器,我們常提到的代理伺服器就指的是轉發代理伺服器。

轉發代理伺服器

普通的轉發代理伺服器是客戶端與原始伺服器之間的一箇中間伺服器。為了從原始伺服器獲取內容,客戶端傳送請求到代理伺服器,然後代理伺服器從原始伺服器中獲取內容再返回給客戶端。客戶端必須專門地配置轉發代理來訪問其他站點,如在瀏覽器中配置代理伺服器地址及埠號等。

轉發代理伺服器的一個典型應用就是為處於防火牆後的內部客戶端提供訪問外部Internet網,比如校園網使用者通過代理訪問國外網站,公司內網使用者通過公司的統一代理訪問外部Internet網站等。轉發代理伺服器也能夠使用快取來緩解原始伺服器負載,提供響應速度。

反向代理伺服器

而反向代理伺服器則相反,在客戶端來看它就像一個普通的Web伺服器。客戶端不要做任何特殊的配置。客戶端傳送普通的請求來獲取反向代理所屬空間的內容。反向代理決定將這些請求發往何處,然後就好像它本身就是原始伺服器一樣將請求內容返回。

反向代理伺服器的一個典型應用就是為處於防火牆後的伺服器提供外部Internet使用者的訪問。反向代理能夠用於在多個後端伺服器提供負載均衡,或者為較慢的後端伺服器提供快取。此外,反向代理還能夠簡單地將多個伺服器對映到同一個URL空間。

兩者區別

兩者的相同點在於都是使用者和伺服器之間的中介,完成使用者請求和結果的轉發。主要的不同在於:

(1)轉發代理的內部是客戶端,而反向代理的內部是伺服器。即內網的客戶端通過轉發代理伺服器訪問外部網路,而外部的使用者通過反向代理訪問內部的伺服器。

(2)轉發代理通常接受客戶端傳送的任何請求,而反向代理通常只接受到指定伺服器的請求。如校園網內部使用者可以通過轉發代理訪問國外的任何站點(如果不加限制的話),而只有特定的請求才發往反向代理,然後又反向代理髮往內部伺服器。

所謂的反向代理就是指代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個Web伺服器,但是此伺服器上不存在任何資源,使用者所請求的資料全部在內部網路中,因此如果受到被人的攻擊,直接攻向的目標是反向代理伺服器,內網資料不會直接受到破壞。 
反向代理伺服器一個很好的應用是CDN(Content Delivery Network),即就是內容分發網路。基本思路是儘可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網路各處放置反向代理節點伺服器所構成的在現有的網際網路基礎之上的一層智慧虛擬網路,CDN系統能夠實時地根據網路流量和各節點的連線、負載狀況以及到使用者的距離和響應時間等綜合資訊將使用者的請求重新導向離使用者最近的服務節點上。其目的是使使用者可就近取得所需內容,有效解決網路擁擠的狀況,提高使用者訪問網站的響應速度。

反向代理(Reverse Proxy) 
是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個伺服器。 
當一個代理伺服器能夠代理外部網路上的主機,訪問內部網路時,這種代理服務的方式稱為反向代理服務。此時代理伺服器對外就表現為一個Web伺服器,外部網路就可以簡單把它當作一個標準的Web伺服器而不需要特定的配置。不同之處在於,這個伺服器沒有儲存任何網頁的真實資料,所有的靜態網頁或者CGI程式,都儲存在內部的Web伺服器上。因此對反向代理伺服器的攻擊並不會使得網頁資訊遭到破壞,這樣就增強了Web伺服器的安全性

相關文章