You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Azure Kubernetes Nginx Ingress特定路径配置IP访问限制?

在Azure Kubernetes的Nginx Ingress Controller中针对特定路径配置IP访问限制

你可以通过Nginx Ingress的nginx.ingress.kubernetes.io/configuration-snippet注解,在指定路径的Nginx location块中插入IP拦截规则,实现仅对目标路径生效的访问限制,其他路径不受影响。

具体配置示例

以下是完整的Ingress资源YAML,针对/restricted-path路径拦截特定IP(示例中为192.168.1.100):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: restricted-path-ingress
  namespace: your-namespace
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      # 拦截指定IP访问当前路径
      deny 192.168.1.100;
spec:
  ingressClassName: nginx # 需与你的Ingress Controller的class名称匹配
  rules:
  - host: your-domain.com
    http:
      paths:
      - path: /restricted-path
        pathType: Prefix
        backend:
          service:
            name: your-target-service
            port:
              number: 80
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-target-service
            port:
              number: 80

规则逻辑说明

  • configuration-snippet中的指令会被注入到对应路径的Nginx location块内,因此只有访问/restricted-path的请求会触发IP拦截,根路径/及其他路径不受限制。
  • 若需要允许特定IP段访问、拒绝其他所有IP,可以修改snippet内容:
nginx.ingress.kubernetes.io/configuration-snippet: |
  allow 10.0.0.0/24;
  allow 172.16.0.0/16;
  deny all;

Nginx会按指令顺序匹配,第一条符合的规则生效。

注意事项

  • 确认你的Nginx Ingress Controller版本支持configuration-snippet注解(v0.26.0及以上版本均支持)。
  • 替换示例中的域名、命名空间、服务名、路径和IP信息为你的实际环境值。
  • 如果需要为多个不同路径设置独立的IP规则,可以拆分多个Ingress资源,或为每个路径单独配置注解(部分版本支持路径级别的注解,需确认Controller配置)。

内容的提问来源于stack exchange,提问作者Abhishek Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:10:07