介紹:
在現代微服務架構中,Envoy已成為代理服務器的首選。它提供了管理請求和響應、負載均衡和安全功能等各種優勢。其中一個關鍵特性是Xff(客戶端IP地址)和上游IP。在這篇文章中,我們將深入探討這些功能,并了解它們在Envoy中的目的。
什么是Xff?
Xff是一種機制,允許代理服務器(如Envoy)向下游系統透露其原始客戶端IP地址。這對于部署多個負載均衡器或代理的情況非常有用,因為它確保后端服務始終可以識別真正的客戶端IP。
在 Envoy 中使用 Xff:
在 Envoy 中,Xff 可以通過設置 `x_forwarded_for` 頭來啟用。這個頭包含原始客戶端IP 地址和任何中間代理服務器的IP 地址。例如,如果請求從客戶端IP `192.168.1.100` 經過了負載均衡器,然后經過了Envoy,輸出將是:
```
X-Forwarded-For: 192.168.1.100, Envoy
```
這表明來自 `192.168.1.100` 的原始請求,以及通過Envoy 的IP。
下游 IP:
在 Envoy 中,下游 IP 指的是請求最初發送到的IP 地址。這對于可用性和健康檢查至關重要,因為它允許后端服務識別客戶端的真實位置并確定其是否可訪問。
Envoy指定可信任上游跳數:
通過設置Xff_trusted_hops_nums參數,可以確定最遠可信任的原始下游Ip。例如use_remote_address 為true時,xff為
X-Forwarded-For: 192.168.1.100, 192.168.1.101, 192.168.1.102
假設Xff_trusted_hops_nums為1,可信任的下游ip為 192.168.1.102
假設Xff_trusted_hops_nums為2,可信任的下游ip為 192.168.1.101
假設Xff_trusted_hops_nums為3,可信任的下游ip為 192.168.1.100
Envoy可設置是否跳過xff的添加:
通過設置skip_xff_append為true,可以跳過將上一跳ip添加至xff的步驟。
結論:
Xff 和下游 IP 在 Envoy 中扮演著至關重要的角色。它們幫助后端服務識別客戶端IP,并確定其真實位置。通過了解這些功能,您可以更好地管理您的微服務架構并確保系統運行順暢。如果您有任何進一步的問題或疑慮,請隨時提問!