nginx4層代理程式和7層代理程式什麼意思? (建議學習:nginx教學)
這裡的層是OSI 7層網路模型,OSI 模型是從上往下的,越底層越接近硬件,越往上越接近軟體,這七層模型分別是實體層、資料鏈結層、網路層、傳輸層、會話層、表示層、應用層。
nginx4層是指傳輸層的 tcp / udp 。
nginx7層是指應用層,通常是http 。
代理原理:
4層用的是NAT技術。 NAT英文全名為“Network Address Translation”,中文意思是“網路位址轉換”,請求進來的時候,nginx修改資料包裡面的目標和來源IP和端口,然後把資料包發向目標伺服器,伺服器處理完成後,nginx再做一次修改,回傳給請求的客戶端。
7層代理:需要讀取並解析http請求內容,然後根據具體內容(url,參數,cookie,請求頭)然後轉發到相應的伺服器,轉發的過程是:建立和目標機器的連接,然後轉發請求,收到回應資料在轉發給請求客戶端。
優缺點比較:
效能:
理論上4層要比7層快,因為7層代理需要解析封包的具體內容,需要消耗額外的cpu。但nginx具體強大的網路並發處理能力, 對於一些慢連接,nginx可以先將網路請求資料緩衝完了一次性轉發給上游server,這樣對於上游網路並發處理能力弱的伺服器(比如tomcat),這樣對tomcat來說就是慢連線變成快連線(nginx到tomcat基本上都是可靠內網),從而節省網路資料緩衝時間,提供並發效能。
彈性:
由於4層代理程式用的是NAT,所以nginx不知道要求的具體內容,所以nginx啥也乾不了。 用7層代理,可以依照請求內容(url,參數,cookie,請求頭)做很多事情,例如:
a:動態代理:不同的url轉送到不同伺服器。
b.風控:屏蔽外網IP請求某些敏感url;根據參數屏蔽某些刷單用戶。
c.稽核:在nginx層記錄請求日誌。
以上是nginx4層是哪四層的詳細內容。更多資訊請關注PHP中文網其他相關文章!