Персональный
сайт
Игоря
Сысоева


 
english
 
sysoev.ru
 
nginx
 поехали!    
 документация    
 поддержка    
 изменения    
 скачать    
 ссылки    
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
обо мне
для писем
для денег
 

Директивы модуля ngx_http_geo_module

 

27.11.2008

Модуль ngx_http_geo_module создаёт переменные, значения которых зависят от IP-адреса клиента.

Содержание

Пример конфигурации
Директивы
geo

Пример конфигурации

    geo  $geo  {
         default          0;
         127.0.0.1/32     2;
         192.168.1.0/24   1;
         10.1.0.0/16      1;
    }

Директивы


syntax: geo $переменная { ... }
default: нет
context: http

Директива geo описывает для указанной переменной зависимость значения от IP-адреса клиента. Адреса задаются в виде CIDR или в виде диапазонов (0.7.23). Кроме того, есть четыре специальных параметра:

  • delete — удаляет описанную сеть (0.7.23).
  • default — значение переменной, если адрес клиента не соответствует ни одному заданному адресу. При использовании CIDR вместо default можно также написать 0.0.0.0/0.
  • include — включает файл с адресами и значениями. Включений может быть несколько.
  • ranges — указывает, что адреса задаются в виде диапазонов (0.7.23). Эта директива должны быть первой. Для ускорения загрузки гео-базы нужно распослагать адреса в порядке возрастания.

Пример описания:

    geo  $country  {
         default          no;
         include          conf/geo.conf;
         delete           127.0.0.0/16;
         127.0.0.0/24     us;
         127.0.0.1/32     ru;
         10.1.0.0/16      ru;
         192.168.1.0/24   uk;
    }

В файле conf/geo.conf могут такие строки:

10.2.0.0/16      ru;
192.168.2.0/24   ru;

В качестве значения выбирается максимальное совпадение, например, для адреса 127.0.0.1 будет выбрано значение "ru", а не "us".

Пример описания диапазонов:

    geo  $country  {
         ranges;
         default                    no;
         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;
    }


(C) Игорь Сысоев
http://sysoev.ru