反向代理基本概念
逆向代理是一種代理伺服器。在將資源返回給客戶機之前,它會根據客戶機的請求從後端伺服器(例如 Web伺服器)獲取資源。
不同於前進代理,前進代理將從網際網路上獲得的資源以媒介的形式返回給相關的客戶端,而前進代理則是作為代理在伺服器端(例如 Web伺服器)使用的,而非客戶端。
客戶機可以通過前向代理訪問許多不同的資源,反向代理就是許多客戶機在不了解後端伺服器存在的情況下通過它訪問不同後端伺服器上的資源,認為所有的資源都來自這個後端伺服器。將網際網路上的請求發送給反向代理,後者將請求轉發給內部網絡上的伺服器。
常用的反向代理伺服器:
它們分別是:Ngnix,IIS,Apache。
反向代理的主要作用為:
1.加密和SSL加速
2.負載均衡
3.緩存靜態內容
4.壓縮
5.減速上傳
6.安全防火牆
7.外網發布
8.突破網際網路封鎖
9.解決跨域問題
反向代理基本工作原理:
TCP 監聽模塊監聽TCP請求,其中消息內容是一個應用層協議的請求(如HTTP、FTP、Email等)。).關於開始處理時是否單獨生成線程的問題,這由伺服器自己決定,目前最流行的是先入消息隊列,然後再進行異步處理,這將極大地提高代理的吞吐量和穩定性。
匹配被代理伺服器根據表(存儲外部網絡URIs和內部網絡伺服器之間的對應關係,通常需要手動設置),如果匹配,代理伺服器將繼續處理,否則將根據外部網絡協議返回錯誤消息。
應用負載均衡策略當網際網路規模較大時,為了系統的整體穩定,解決單點問題,需要根據客戶端的策略,合理的向代理伺服器發送消息。一種簡單的策略是散列分布或隨機分布,通常由用戶配置和選擇。
預處理在此根據外部網絡應用協議協商進行解密,安全,對話,解凍等處理。
新生成網絡報文本機根據協商好的內網應用協議生成網絡信息,可執行加密、安全、會話、壓縮等操作。
轉發給被代理伺服器向內網伺服器發送新生成的網絡消息(可能是 Web伺服器、 FTP伺服器、郵件伺服器)。
接受網絡報文 通過內部伺服器反饋的網絡消息。
預處理這裡根據協商的外部網絡應用協議進行加密、安全、對話、壓縮等處理。
資源輸出模塊此時,生成符合外部網絡應用協議要求的文件,發送到外部網絡連接的另一端(用戶代理)。
總結:
反向代理伺服器在企業應用中性能突出,具有集中安全、負載均衡等優勢。