Nginx地理模块赢得';不使用变量?

Nginx地理模块赢得';不使用变量?,nginx,geo,Nginx,Geo,当我尝试运行nice向我的站点添加地理功能时,我注意到了奇怪的nginx1.13.6行为。我怀疑这是否是有意的,或者我有办法使用 以下是配置示例: geo $city { ranges; default $city_mm; include geo/city.txt; } geo $city_mm { ranges; include geo/mm_city.txt; } 也就是说,如果无法计算/找到$city的值,则它应该返回$city\u mm的内容,

当我尝试运行nice向我的站点添加地理功能时,我注意到了奇怪的nginx1.13.6行为。我怀疑这是否是有意的,或者我有办法使用

以下是配置示例:

geo $city {
    ranges;
    default $city_mm;
    include geo/city.txt;
}

geo $city_mm {
    ranges;
    include geo/mm_city.txt;
}
也就是说,如果无法计算/找到
$city
的值,则它应该返回
$city\u mm
的内容,但当我使用nginx运行它时,它只返回字符串
$city\u mm
(正是这个字符串,而不是该名称变量的内容),而
$city_mm
则是当时定义的


我看不到与此相关的问题,所以我只是想问一下,我是否有办法做到这一点,可能是以不同的方式?

因此,总结一下@alexander的外部链接中的解决方案,Nginx(目前)不支持地理地图的动态默认设置,因此您必须使用常规地图的默认功能

geo $city_geo {
    ranges;
    include geo/city.txt;
}

geo $city_mm {
    ranges;
    include geo/mm_city.txt;
}

map $city_geo $city {
    "" $city_mm;
    default $city_geo;
}

我也有同样的问题。找不到解决方案。@Carl Author在项目描述中添加了语法,请执行以下操作: