Nginx

將 IP 源添加到 nginx 標頭

  • March 26, 2018

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) 負載平衡器

引用自:https://serverfault.com/questions/901345