文档首页/ 云容器引擎 CCE/ 用户指南/ 网络/ 路由(Ingress)/ Nginx Ingress管理/ Nginx Ingress高级配置示例/ 为Nginx Ingress配置客户端IP地址限制
更新时间:2026-06-18 GMT+08:00
为Nginx Ingress配置客户端IP地址限制
使用Nginx Ingress时,您可以通过以下annotation限制访问的客户端IP:
- nginx.ingress.kubernetes.io/whitelist-source-range:允许访问的客户端IP范围,支持IP地址或CIDR地址块,多个地址以英文半角逗号(,)分隔。
- nginx.ingress.kubernetes.io/denylist-source-range:禁止访问的客户端IP范围,支持IP地址或CIDR地址块,多个地址以英文半角逗号(,)分隔。
配置IP地址限制
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建名为“ingress-test.yaml”的YAML文件,此处文件名可自定义。
vi ingress-test.yaml
允许访问的示例如下:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test namespace: default annotations: nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.1.0/24" # 允许访问的客户端IP范围 spec: rules: - host: '' http: paths: - path: / backend: service: name: <your_service_name> #替换为您的目标服务名称 port: number: <your_service_port> #替换为您的目标服务端口 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: nginx禁止访问的示例如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test namespace: default annotations: nginx.ingress.kubernetes.io/denylist-source-range: "10.0.0.0/24" # 禁止访问的客户端IP范围 spec: rules: - host: '' http: paths: - path: / backend: service: name: <your_service_name> #替换为您的目标服务名称 port: number: <your_service_port> #替换为您的目标服务端口 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: nginx - 创建Ingress。
kubectl create -f ingress-test.yaml
回显类似如下,表示Ingress服务已创建。
ingress.networking.k8s.io/ingress-test created
- 查看已创建的Ingress。
kubectl get ingress
回显如下,表示Ingress服务创建成功。
NAME CLASS HOSTS ADDRESS PORTS AGE ingress-test nginx * 121.**.**.** 80 10s
- 测试访问Ingress。如果配置了示例中允许访问的annotation,则只有192.168.1.0/24网段内IP可以正常访问,其他IP会收到403 Forbidden响应;如果配置了示例中禁止访问的annotation,则10.0.0.0/24网段内IP无法访问,其他IP可以正常访问。