k8s ingress獲取真實IP位址配置

2021-09-19 20:09:28 字數 1002 閱讀 7150

業務架構:

client->waf->lb->ecs->容器

問題:在容器中獲取不到真實的客戶端公網ip

1.在ecs上的抓包分析,看到waf已經將 真實客戶端位址放到了 x-forwarded-for 的字段中傳給了ecs

2.在容器中抓包,看到乙個x-forwarded-for的字段是錯誤的

對應的ip為waf的回源位址

3.與容器同學確認 ingress的行為

將真實的客戶端ip,放到了x-original-forwarded-for。而將waf的回源位址放到了 x-forwarded-for了。
修改容器的配置檔案

配置檔案:

kube-system/nginx-configuration
修改命令:

kubectl -n kube-system edit cm nginx-configuration
新增內容:

compute-full-forwarded-for: "true"

forwarded-for-header: "x-forwarded-for"

use-forwarded-headers: "true"

儲存後立即生效。隨後ingress的新增真實的ip行為會與rfc一樣都依次新增到x-forwarded-for中了。

更多引數參考這裡。

業務程式需要調整獲取真實ip的字段為x-original-forwarded-for。

姐妹篇:

apapche 獲取真實ip位址方法

nginx獲取真實ip位址方法

k8s ingress配置websocket支援

問題分析 表現形式 websocket鏈結 報錯 200 1copywebsocket connection to ws faile error during websocket handshake unexpected response code 200 猜測引起原因以及應對方式 解決方案 由於k...

k8s ingress配置websocket支援

具體來說,使用的ingress controller不一樣,有關的設定也不太一樣 參考 在 nginx ingress controller 中預設已經支援websocket訪問,官方文件中說明websocket不需要特別的配置,但需要在註解中配置以下三項 網上看到的另一種寫法配置 沒實踐過,若是配...

前後端分離架構 k8s ingress

接下來使用k8s進行發布應用 k8s集群 系統docker ip主機名 配置centos 7.6 19.03.5 192.168.31.150 k8s master 2核4g centos 7.6 19.03.5 192.168.31.178 k8s node01 2核4g centos 7.6 1...