Nginx Ingress 如何限制 X-Forwarded-For 头的访问?

aku*_*scu 3 proxy http cloudflare kubernetes-ingress nginx-ingress

我有一个 kubernetes 集群和 nginx 入口。请求从 cloudflare 发送到此入口。我可以通过 x-forwarded-for 标头限制对入口的访问吗?例如,我的 IP 是 1.1.1.1 ,cloudlare 2.2.2.2 。当我通过 cloudflare 发出请求时,cloudflare 将 x-forwarded-for 标头设置为: 1.1.1.1 。如果 x-forwarded-for 标头而不是 1.1.1.1,我想限制对我的入口的访问

aku*_*scu 6

我将此注释添加到 ingress,它现在正在工作!

nginx.ingress.kubernetes.io/server-snippet

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: services-ingress
  annotations:
    nginx.ingress.kubernetes.io/server-snippet: |
               if ($http_x_forwarded_for != "<my-ip-address>") {
               return 301 https://<redirect-address>;
                    }
spec:
  rules:
  - host: <my-host>
    http:
      paths:
      - path: /<my-path>
        backend:
          serviceName: <my-service>
          servicePort: 80 
Run Code Online (Sandbox Code Playgroud)