Модуль доступен здесь: ftp://ftp.lexa.ru/pub/apache-rus/contrib/
mod_geo.c version 1.0
модуль для определения географии посетителей сайта
Оглавление
1. Copyright
2. Назначение
3. Установка
4. Конфигурация
5. Замечания
6. TODO
Copyright
Copyright (C) 2000-2002 Alex Tutubalin, lexa@xxxxxxx
Допускается распространение и использование в производных продуктах на
условиях аналогичных Apache License - должен быть сохранен копирайт автора и
ссылка на http://www.lexa.ru/lexa, производный продукт не должен называться
mod_geo
Модуль включает существенную часть libpatricia, Copyright (c) 1997, 1998,
1999
The Regents of the University of Michigan ("The Regents") and Merit Network,
Inc. All rights reserved.
Описание
Модуль предназначен для определения географии пользователя WWW-сервера и
передачи географии вызываемым скриптам/динамическим страницам в виде
дополнительного аргумента запроса. Это может быть полезно, если в
зависимости от региона формируется разное содержимое ответной страницы,
скажем разная реклама или разные ссылки на Интернет-магазины
(например,американские для US/CA, европейские для остальных). Модуль
совместим с mod_accel - ответы для каждой страны кэшируются отдельно т.к.
код страны добавляется к видимому mod_accel URL.
Использовано внутреннее представление в виде Patricia tree, что допускает
наличие в базе данных вложенных адресов:
8.0.0.0/7 US
9.20.0.0/17 GB
Скорость работы Patricia tree более чем достаточна - на аналогичной задаче и
таблице в 70 тыс префиксов автор получал скорость порядка 800 тыс
lookups/sec на PIII-600, что на три порядка больше быстродействия Apache на
той же машине.
Скрипты для построения БД по географии в комплект модуля не входят и будут
опубликованы позднее, входящая в комплект таблица была построена 10.01.2002
по данным БД RIPE/ARIN/APNIC.
Установка
При конфигурации Apache к параметрам ./configure нужно добавить
--add-module=/path/to/mod_geo.c:
tar xzvf apache_1.3xxx
tar xzvf mod_geo-1.0.xx.tar.gz
cd apache_1.3xx
./configure --prefix=/usr/local/apache \
... --add-module=../mod_uid_1.0.xx/mod_geo.c other-params
make
make install
Конфигурационные директивы
[директивы описаны в документации]
Замечания
1. При использовании совместно с кэширующим модулем (mod_accel и так
далее) включать работу mod_geo нужно только для тех документов, которым
это реально нужно. В противном случае аргумент с именем страны будет
приписан ко всем URL (включая картинки), что резко снизит эффективность
кэширования.
2. Расход памяти данным модулем сравнительно невелик - единицы мегабайт
под таблицу в 40 тыс записей (размер на сегодня), при инициализации
таблицы один раз в контексте сервера эти данные разделяются между всеми
процессами и общий расход памяти в расчете на одну копию httpd
копеечный.
TODO
1. Поддержка более общего формата географии (например,
страна/регион/город/улица/номер_дома) - проблема только в том, где
взять соответствующую базу данных малой кровью.
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.