我的haproxy配置中包含以下行:
http-request set-header x-geoip-country %[src,map(/etc/hap1.8/geo/country_iso_code.map)]
设置原产国,但只有在密钥是确切的密钥ip而不是haproxy期望的CIDR表示ips时,它才起作用。该列表来自maxmind,其格式如下;
1.0.0.0/24 AU
1.0.1.0/24 CN
1.0.16.0/20 JP
...
例如,一个1.0.0.45的ip将与文件中的1.0.0.45匹配,而不是1.0.0.0/24。虽然这似乎合乎逻辑,但这是在haproxy的示例中,所以我问是否可以与10.0.0.0/24匹配?
答案 0 :(得分:1)
默认情况下,map
将按字符串而不是ip进行匹配。来自docs:
map_<match_type>(<map_file>[,<default_value>])
...如果未设置
<match_type>
,则默认为“ str” ...
要通过ip进行匹配,请使用map_ip
:
http-request set-header x-geoip-country %[src,map_ip(/etc/hap1.8/geo/country_iso_code.map)]