Nginx
將 IP 源添加到 nginx 標頭
我
ip_hash
在 nginx 上遇到了粘性會話的情況,它總是將流量僅定向到一台伺服器。nginx 在Google云負載均衡器後面執行,從 nginx 到我的應用程序的 GC Kubernetes 負載均衡器,然後才真正進入其中一個 pod。我認為所有使用者的 IP 都被 GC 負載均衡器屏蔽,以便 nginx 將它們辨識為一個來源。
有人告訴我,我們可以將使用者的原始 IP 添加到 nginx 的標頭中,以便負載均衡器能夠將它們辨識為不同的使用者。我怎樣才能接近一個?還是有其他解決方案?
如果您使用網路負載平衡(使用目標池),負載平衡器會保留 IP。發生的情況是 Kubernetes 正在使用集群/節點 IP更改源 IP 。
Kubernetes 具有保留客戶端源 IP 的功能。您可以查看文件以了解如何使用 Type=LoadBalancer(網路負載平衡)在服務中保留客戶端源 IP。
在目標池的初始配置期間配置會話親和性,方法是將其設置為以下非預設值之一,以提供所需的粘性會話級別:
CLIENT_IP
2 元組散列,它使用源 IP 和目標 IP。只要實例保持健康,來自客戶端的所有連接都將在同一個實例上結束,而不管協議如何。
CLIENT_IP_PROTO
三元組散列,它使用源和目標 IP 和協議。只要來自客戶端的所有連接使用相同的協議並且該實例保持健康,它們就會最終在同一個實例上結束。
Lakshman Diwaakar將會話親和性配置稱為*“在創建”*目標池期間不可修改的屬性集。他對可用的雲計算負載平衡功能的評論可能會讓您感興趣:網路負載平衡器與 HTTP(s) 負載平衡器。