ingress获取真实IP
本文最后更新于 1266 天前,其中的信息可能已经有所发展或是发生改变。

Ingress获取真实IP

一般情况下,经过ingress的请求会携带headerX-Real-IP,用户可根据header解析出真实访问IP

但是有一种情况,用户请求可能经过多个nginx才达到ingress, 通过上述方法得到的并不是用户的真实IP了(比如现在我模拟云平台nginx->ingress,就无法获取到真实IP)

user->request->nginx->…->ingress->backend

方式一 X-Forwarded-For配置

ps:适用于7层http转发

nginx-ingress官方的建议是开启use-forwarded-headers

查看NGINX Ingress Controller的ConfigMaps配置文档,可以找到以下配置项

use-forwarded-headers

如果为true,NGINX会将传入的 X-Forwarded-* 头传递给upstreams。当NGINX位于另一个正在设置这些标头的L7 proxy / load balancer之后时,请使用此选项(咱暂时使用此方案)

如果为false,NGINX会忽略传入的 X-Forwarded-* 头,用它看到的请求信息填充它们。如果NGINX直接暴露在互联网上,或者它在基于 L3/packet-based load balancer 后面,并且不改变数据包中的源IP,请使用此选项。

NGINX Ingress Controller直接暴露互联网也就是Edge模式不能开启为true,否则会有伪造ip的安全问题。也就是k8s有公网ip,直接让客户端访问,本配置不要设为true

forwarded-for-header

设置标头字段以标识客户端的原始IP地址。 默认: X-Forwarded-For

如果 NGINX Ingress Controller 在CDN,WAF,LB等后面,设置从头的哪个字段获取IP,默认是X-Forwarded-For
这个配置应该和use-forwarded-headers配合使用

compute-full-forwarded-for

将远程地址附加到 X-Forwarded-For 标头,而不是替换它。

启用此选项后,upstreams应用程序将根据其自己的受信任代理列表提取客户端IP

修改configmap nginx-configuration配置

因为我使用rke部署,因此是修改:kubectl -n ingress-nginx edit cm ingress-nginx-controller

data上加入

data:
  compute-full-forwarded-for: "true"
  forwarded-for-header: "X-Forwarded-For"
  use-forwarded-headers: "true"

image-20230301234948668

方式二 Proxy Protocol 配置实例

适用于4层tcp转发

公有云的负载均衡LB一般都支持Proxy Protocol

查看NGINX Ingress Controller的ConfigMaps配置文档,可以找到如何配置Proxy Protocol

use-proxy-protocol

启用或禁用roxy Protocol,以接收通过代理服务器和负载均衡器(例如HAProxy和Amazon Elastic Load Balancer(ELB))传递的客户端连接(真实IP地址)信息,NGINX Ingress Controller 作为receiver角色 Proxy Protocol配置:

kubectl -n ingress-nginx edit cm ingress-nginx-controller

data上加入

data:
  use-proxy-protocol: "true"
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇