我有一个Kubernetes集群和Nginx Ingress。请求来自Cloudflare到这个Ingress。我能否通过X-Forwarded-For头限制对Ingress的访问?例如,我的IP是1.1.1.1,而Cloudflare是2.2.2.2。当我通过Cloudflare发出请求时,Cloudflare会将X-Forwarded-For头设置为:1.1.1.1。如果X-Forwarded-For头不是1.1.1.1,我希望限制对我的Ingress的访问。
我有一个Kubernetes集群和Nginx Ingress。请求来自Cloudflare到这个Ingress。我能否通过X-Forwarded-For头限制对Ingress的访问?例如,我的IP是1.1.1.1,而Cloudflare是2.2.2.2。当我通过Cloudflare发出请求时,Cloudflare会将X-Forwarded-For头设置为:1.1.1.1。如果X-Forwarded-For头不是1.1.1.1,我希望限制对我的Ingress的访问。
我在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