正向代理程式是一個位於客戶端和目標伺服器之間的代理伺服器(中間伺服器)。為了從原始伺服器取得內容,客戶端向代理伺服器發送請求,並且指定目標伺服器,之後代理程式向目標伺服器轉交並且將獲得的內容傳回給客戶端。正向代理的情況下客戶端必須要進行一些特別的設定才能使用。
反向代理剛好相反。對客戶端來說,反向代理就好像目標伺服器。且客戶端不需要進行任何設定。客戶端向反向代理發送請求,接著反向代理判斷請求走向何處,並將請求轉交給客戶端,使得這些內容就好似他自己一樣,一次客戶端並不會感知到反向代理後面的服務,也因此不需要客戶端做任何設置,只需要把反向代理伺服器當成真正的伺服器就好了。
區別
正向代理程式需要你主動設定代理伺服器ip或網域進行訪問,由設定的伺服器ip或網域去獲取存取內容並回傳;而反向代理不需要你做任何設置,直接訪問伺服器真實ip或域名,但是伺服器內部會自動根據訪問內容進行跳轉及內容返回,你不知道它最終訪問的是哪些機器。
正向代理程式是代理客戶端,為客戶端收發請求,使真實客戶端對伺服器不可見;而反向代理是代理伺服器端,為伺服器收發請求,使真實伺服器對客戶端不可見。
從上面的描述也能看得出來正向代理和反向代理最關鍵的兩點區別:
##是否指定目標伺服器 #客戶端是否要做設定正向代理程式與反向代理
#正向代理程式中,proxy和client同屬一個LAN,對server透明; 反向代理中,proxy和server同屬一個LAN,對client透明。實際上proxy在兩種代理中做的事都是代為收發請求和響應,不過從結構上來看正好左右互換了下,所以把前者那種代理方式叫做正向代理,後者叫做反向代理。從用途上來區分:
正向代理:正向代理程式用途是為了在防火牆內的區域網路提供存取internet的途徑。另外還可以使用緩衝特性減少網路使用率反向代理:反向代理的用途是將防火牆後面的伺服器提供給internet用戶存取。同時也可以完成諸如負載平衡等功能從安全性來講:
正向代理程式:正向代理程式允許客戶端透過它存取任意網站並且隱蔽客戶端本身,因此你必須採取安全措施來確保僅為經過授權的客戶端提供服務反向代理:對外是透明的,訪問者並不知道自己訪問的是代理。對訪客而言,他以為訪問的就是原始伺服器更多Nginx相關技術文章,請訪問Nginx使用教程欄位進行學習!
以上是nginx正向代理和反向代理區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!