根據架設環節不同將負載均衡分為以下類型:
數據鏈路層負載均衡:數據鏈路層負載均衡使用虛擬MAC地址的方式提供服務,請求數據包中的二層目的地址封裝的是對外服務的虛擬MAC地址,負載均衡接收請求后,會將請求分配到具有實際MAC地址的設備上進行響應。在這個過程中,負載均衡利用修改目的MAC地址的方式進行請求轉發,而不修改IP,因為組建這樣的負載均衡模型時,真實物理服務器集群的IP和負載均衡服務IP是一致的。這種方式的好處是不需要修改數據包的源IP和目的IP就可以實現數據分發。
網絡層負載均衡:網絡層負載均衡(三層負載均衡)采用虛擬IP地址的方式提供服務。請求數據包中的IP地址為負載均衡服務IP,并且請求將通過實際互聯IP地址分配到后端實際的服務器上進行響應。在這一原理中,請求數據包將被負載均衡服務器的內核進行處理,通過負載均衡算法得到一個目標真實服務器的地址,并修改請求數據包中的目的IP為真實服務器IP,來完成請求的分發。而真實服務器處理請求后,會將響應返回給負載均衡服務器,在負載均衡服務器上再次完成源IP的修改,用負載均衡自身的服務IP對客戶端進行回應。
反向代理負載均衡:利用反向代理實現負載均衡已經成為很多云平臺廠商常用的方法。反向代理位于服務提供側,部署在服務器的前端,替服務接收HTTP請求。服務器也不直接暴露于公網提供服務,因此并不需要部署外網IP,所以反向代理還有保護網站安全的作用。反向代理得到服務器的響應內容后,同時可以緩存到本地,當內容再次被請求時,代理可以通過緩存內容對用戶進行響應,很大程度上降低了服務器的負載。
DNS負載均衡:DNS負載均衡是利用處理DNS域名解析請求的同時進行負載均衡。可以在DNS服務中為同一個域名配置多條A記錄,使得每一次的域名解析請求根據負載均衡算法分配到不同的服務IP。
HTTP重定向負載均衡:HTTP重定向負載均衡中需要有一個重定向服務器來完成HTTP請求的重定向任務,通過重定向建立連接的目的地址來完成負載均衡。但是這一過程會使客戶端的瀏覽器發起兩次鏈接請求才能正常訪問,并且即使是重定向的過程,對于重定向服務器而言也是一次標準的HTTP請求響應過程,重定向服務器會回復302響應狀態碼給瀏覽器。