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

如何配置规则以仅当请求携带指定值头信息时才允许访问特定endpoint

Nginx Ingress 请求头访问限制实现方案

你可以通过Nginx Ingress提供的自定义配置注入能力,快速实现请求头校验逻辑,同时可灵活结合路径限制规则使用,具体操作如下:

1. 全路径请求头校验

如果需要对当前Ingress关联的所有路径生效,直接在Ingress资源的annotations中添加如下配置即可:

annotations:
  nginx.ingress.kubernetes.io/configuration-snippet: |
    # 可按需修改要校验的请求头、匹配规则、返回状态码
    if ($http_x_allow_access != "your-expected-value") {
        return 403;
    }

说明:Nginx中请求头对应的变量固定以$http_为前缀,头名需全部小写,横杠替换为下划线,例如请求头X-Custom-Secret对应的变量为$http_x_custom_secret

2. 特定路径+请求头联合校验

如果仅需要对指定路径做请求头校验,可调整配置片段实现多条件联合判断:

annotations:
  nginx.ingress.kubernetes.io/configuration-snippet: |
    # 匹配需要限制的路径,可按需修改匹配规则
    if ($request_uri ~ ^/api/private) {
        set $check_rule 1;
    }
    # 匹配不符合请求头要求的请求
    if ($http_x_allow_access != "your-expected-value") {
        set $check_rule "${check_rule}1";
    }
    # 同时满足两个条件时拒绝访问
    if ($check_rule = "11") {
        return 403;
    }

常用自定义调整场景

  • 仅拦截缺少指定请求头的请求:将请求头判断条件修改为if ($http_x_custom_header = "")
  • 同时校验多个请求头:依次叠加对应的set规则,最后匹配累加后的变量值即可
  • 自定义拦截响应:将return 403修改为你需要的状态码,也可搭配rewrite指令跳转自定义错误页

内容的提问来源于stack exchange,提问作者Kazim Okan Akgül

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:36:03