如何将客户端IP地址从CloudFlare转发到Kubernetes NGINX入口控制器?

问题描述 投票:0回答:3

我使用 CloudFlare 作为系统的 DNS 服务器,并且系统的某些域需要白名单 IP。我设法做到了这一点,但当我在 CloudFlare 上启用域的

Proxy status
功能时,我收到
403 Forbidden
错误,因为 CloudFlare 为
ingress
转发自己的 IP,而不是客户端 IP 地址。
我找到了一个教程这里
还有其他方法可以解决这个问题吗?
这是 CloudFlare 配置。

enter image description here

这是

ingress
配置。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: admin-ingress
  namespace: machine-learning
  labels:
    app.kubernetes.io/managed-by: Helm
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 50m
    nginx.ingress.kubernetes.io/whitelist-source-range: 184.90.9.99,183.88.6.88
spec:
  rules:
    - host: "admin.xxx.com"
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: admin-service
                port:
                  name: http

这是我得到的错误

enter image description here

非常感谢任何贡献。
最好的问候,

nginx kubernetes cloudflare nginx-ingress ingress-controller
3个回答
2
投票

请添加此行 real_ip_header CF-连接-IP; 在您的 Nginx 配置文件中将原始客户端 IP 地址转发到服务器。


1
投票

试试这个https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#configuration-snippet

nginx.ingress.kubernetes.io/configuration-snippet: |
  real_ip_header CF-Connecting-IP;

0
投票

Helo All 我面临同样的问题并尝试了上面 nginx.ingress.kubernetes.io/configuration-snippet:| real_ip_header CF-连接-IP; 但同样的问题,当获取入口 pod 日志时,我看到了云耀斑 ips

© www.soinside.com 2019 - 2024. All rights reserved.