web服務器的概念與基本原理 web服務器是什么( 三 )


1.4. 反向代理概念與基本原理1.4.1. 反向代理基本概念反向代理是代理服務器的一種 。它根據客戶端的請求,從后端的服務器(如Web服務器)上獲取資源,然后再將這些資源返回給客戶端 。與前向代理不同,前向代理作為一個媒介將互聯網上獲取的資源返回給相關聯的客戶端,而反向代理是在服務器端(如Web服務器)作為代理使用,而不是客戶端 ??蛻舳送ㄟ^前向代理可以訪問很多不同的資源,而反向代理是很多客戶端都通過它訪問不同后端服務器上的資源,而不需要知道這些后端服務器的存在,而以為所有資源都來自于這個反向代理服務器 。
互聯網中的請求發送給反向代理,反向代理把請求轉發到內網中的服務器 。
反向代理的主要作用為:

  • 加密和SSL加速
  • 負載均衡
  • 緩存靜態內容
  • 壓縮
  • 減速上傳
  • 安全防火墻
  • 外網發布
  • 突破互聯網封鎖
  • 解決跨域問題
1.4.2. 反向代理基本工作原理
  • TCP監聽模塊 監聽TCP請求,這里的請求是指報文內容是某應用層協議(比如HTTP,FTP,EMAIL等應用層協議)的請求 。至于這里是否會單獨產生一個線程來開始處理,這個由服務器自己決定,目前最流行的是先入消息隊列然后異步處理,這樣能極大提高代理的吞吐量和穩定性 。
  • 匹配被代理服務器 代理服務器根據一個表(存放外網url和內網服務器的對應關系,通常需人工進行設置),如果匹配到則繼續處理,否則依據外網協議返回錯誤信息,比如HTTP協議這返回404 。
  • 應用負載均衡策略 如果比較大型的互聯網應用,為了整體系統穩定性,解決單點問題,需要根據自定義策略合理的轉發報文給被代理服務器 。簡單的策略是哈希分發或者隨機分發,一般可以由用戶進行配置和選擇 。
  • 預處理 這里依據協商好的外網應用協議進行解密,安全,會話,解壓等處理 。
  • 新生成網絡報文 這里依據協商好的內網應用協議生成網絡報文,這里可能會進行加密,安全,會話,壓縮等處理 。
  • 轉發給被代理服務器 把新生成的網絡報文發送給內網服務器(可能是否Web服務器,Ftp服務器,郵件服務器) 。
  • 接受網絡報文 接受內網服務器反饋的網絡報文 。
  • 預處理 這里依據協商好的外網應用協議進行加密,安全,會話,壓縮等處理 。
  • 資源輸出模塊 這時生成滿足外網應用協議要求的報文,并發送到外網連接的另一端(用戶代理) 。
常用的反向代理服務器
它們的名字您一定記得:Ngnix,IIS,Apache 。1.5. 總結從概念上講:Web服務器是提供WWW服務的程序;Web容器是提供給開發者的框架;Web應用程序服務器內容豐富得多,既可用各廠商通常遵循一定的工業標準并自定義擴展功能而成,也可以利用開源組件輕量級拼裝打造;反向代理服務器在企業級應用中表現突出,具有解決集中式安全,負載均衡等等優點 。如今這四個概念的邊界越來模糊,看看這個表就知道了:
軟件名詞
是否Web服務器
是否Web容器
是否Web應用服務器
是否能反向代理
IIS



Nginx


Apache


Tomcat


Jetty


WebSphere



WebLogic



Kerstrel

是?
Http.sys


關于Kerstrel是否web容器,有兩種觀點:
1. 由于Kerstrel不提供編寫應用的框架,所以它不是容器;asp.net core才是容器,因為它提供了開發應用的框架并提供web應用(MVC,Web API)運行環境 。
【web服務器的概念與基本原理 web服務器是什么】2. Kerstrel提供了運行環境 。

推薦閱讀