On Fri, Aug 31, 2007 at 01:24:37PM +0400, Vadim A. Umanski wrote:
> IS> On Fri, Aug 31, 2007 at 11:13:34AM +0400, Vadim A. Umanski wrote:
>
> >> >> Вопрос.
> >> >> 1. Сравнение в if будет case-sensitive ?
> >> AV> да
> >> >> 2. Если да, то отчего пример конфига маленькими буквами?
> >> AV> потому что ниже по
> >> AV> http://sysoev.ru/nginx/docs/http/ngx_http_geo_module.html#example есть
> >> AV> В файле conf/geo.conf могут такие строки:
> >> AV> 10.2.0.0/16 ru;
> >> AV> 192.168.2.0/24 ru;
> >> >> 3. Не стоит ли упомянуть в документации, что на регистр символов надо
> >> >> обращать внимание?
> >> AV> Насколько я вижу на
> >> AV> http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#if
> >> упомянуто
> >> AV> проверка переменной с помощью регулярного выражения без учёта регистра
> >> символов
> >> AV> ? "~*" и с учётом ? "~"
> >>
> >> if ($country !~* "ru") {
> >> return 403;
> >> }
> >>
> >> Да, такая конструкция благополучно срабатывает. Очень корректно
> >> получается, можно писать родную страну как в голову взбредет и не
> >> беспокоиться. ;-)
>
> IS> Только нужно учитывать, что регулярные выражение медленее, чем простое
> IS> сранение строк. В данном же случае для проверки страны лучше использовать
> IS> такое:
>
> IS> default 1;
> IS> 192.168.1.0/24 0; # ru
> IS> 10.2.0.0/16 0; # ru
>
>
> IS> if ($abroad) {
> IS> return 403;
> IS> }
>
> Тут я что-то недогоняю. Как сюда ложится подключенная мной база
> GeoIP, сконвертированная контриб-скриптом? Там табун сеток,
> обозначенных как RU. Мне они нужны. А все остальные - не нужны. Как
> это все ложится в 0 и 1 ?
RU - 0, всё остальное просто выкидывается.
--
Игорь Сысоев
http://sysoev.ru