ngx_http_geo_module range overlaps

Валентин Бартенев vbart at nginx.com
Sat Jan 4 14:12:25 UTC 2014


On Saturday 04 January 2014 15:01:16 Ксения Юрьевна Блащук wrote:
> Добрый день.
> Возник вопрос по модулю ngx_http_geo_module. Почему-то нельзя внести
> пересекающиеся диапазоны адресов. В документации:
> 
> A value of the most specific match is used. For example, for the 127.0.0.1
> address the value "RU" will be chosen, not "US".
> 
> Example with ranges:
> 
> geo $country {
>     ranges;
>     default                   ZZ;
>     127.0.0.0-127.0.0.0       US;
>     127.0.0.1-127.0.0.1       RU;
>     127.0.0.1-127.0.0.255     US;
>     10.1.0.0-10.1.255.255     RU;
>     192.168.1.0-192.168.1.255 UK;
> }
> 
> Пытаюсь воспроизвести этот пример:
> 
> /etc/init.d/nginx reload
>  * Checking nginx' configuration ...
> nginx: [emerg] range "127.0.0.1-127.0.0.255" overlaps "127.0.0.1-127.0.0.1"
> in /etc/nginx/sites/test-geo.conf:6
> nginx: configuration file /etc/nginx/nginx.conf test failed
> nginx: [emerg] range "127.0.0.1-127.0.0.255" overlaps "127.0.0.1-127.0.0.1"
> in /etc/nginx/sites/test-geo.conf:6
> nginx: configuration file /etc/nginx/nginx.conf test failed
> 
[..]
> 
> В чем может быть дело?
> Спасибо.

Это баг в проверке конфигурации.

Чтобы его обойти можете поменять местами так чтобы вначале шел больший 
диапазон:

    127.0.0.1-127.0.0.255     US;
    127.0.0.1-127.0.0.1       RU;

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru