ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] =?KOI8-R?B?QW5ub3VuY2U6IG1vZF9nZW8gLSDP0NLFxMXMxc7JxSDHxc/H0sHGyckg0M8g?==?KOI8-R?B?SVA=?=


  • To: apache-talk@lists.lexa.ru
  • Subject: [apache-talk] Announce: mod_geo - определение географии по IP
  • From: Alex Tutubalin <lexa@lexa.ru>
  • Date: Sat, 19 Jan 2002 21:40:42 +0300

      Модуль доступен здесь: 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@lexa.ru

Допускается распространение и использование в производных продуктах на
условиях аналогичных 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@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.