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

Nginx变量映射问题:基于$allow_origin的$cred map指令始终返回false求助

问题分析与修复方案

你的map $http_origin $cred指令始终返回false的核心原因是逻辑错误:

  • Nginx的map指令是将源变量的实际值与定义的匹配键做对比,你用字符串'$allow_origin'作为匹配键,而$http_origin的值永远不会等于这个字符串,因此只会命中default返回false。
  • 你的需求是基于第一个map生成的$allow_origin判断是否设置$cred,所以第二个map的源变量应该是$allow_origin,而非$http_origin。

修复后的map指令 - cred

写法一(匹配非空值)

map $allow_origin $cred {
    "" false;
    default true;
}

写法二(正则匹配非空内容)

map $allow_origin $cred {
    ~. true;
    default false;
}

两种写法逻辑一致:当$allow_origin不为空(即第一个map已匹配到允许的源),$cred设为true;否则返回false,完全等效于你给出的if语句逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:33:09