什么时候在 NGINX 上计算变量

问题描述

声明新变量(例如 map 或 geoIP2)始终在 http 上下文中。

假设我只需要在配置中的某个 location 块上检查 ip 的位置, 这是否意味着与 geoIP2 相关的这个变量将在与服务器建立的任何连接中计算或仅在它被调用时计算?

我想知道 Nginx 实际上是如何工作的,什么时候计算变量?

示例:

http{
    geoip2 GeoIP/GeoLite2-Country.mmdb {
        $geoip2Country country iso_code;
    }
    map $geoip2Country $denyCountry {
        default  1;
        US  0;
    }
    
    location /zone/{    //the only location where I use the variable
        if ($denyCountry){
            return 444;
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)