понедельник, 29 ноября 2010 г.

Документация для reproxy 2.1

После запуска reproxy перенаправляет все сообщения из консоли в файл reproxy.log, после чего ищет каталог filters в котором обычно хранятся файлы с правилами фильтрации для каждого нужного домена.

По умолчанию reproxy при запуске начинает слушать порт 5555 на 127.0.0.1.
Вы можете  задать другой адрес и порт, указав их при запуске.
Например: reproxy 10.10.2.15 8080
  • если вы запустили reproxy, а он через секунду закрылся - откройте лог и посмотрите, что случилось. 
  • если вы запускаете reproxy из windows, то пустое черное окошко cmd - это нормально, т.к. все сообщения идут в лог файл reproxy.log.
Также в ходе работы reproxy может создать каталог data, в котором сохраняются файлы с дампом пользовательских запросов, проходящих через reproxy.

Файлы с правилами фильтрации в каталоге filters должны называться также, как имя домена, трафик на/с которого вы хотите обрабатывать.

Каждый файл в filters может состоять из одной или нескольких секций с разными фильтрами.



Кодировка файлов - utf8, параметры, начинающиеся с букв re_, являются не обычным текстом, а регулярными выражениями (http://ru.wikipedia.org/wiki/Regex)

Название секции - произвольная строка в квадратных скобках.
Пример: [mail.ru]

Каждая секция содержит параметры и их значения в виде:
имя_параметра=значение параметра


Параметры бывают следующими:

encode - кодировка страницы: utf8, cp1251. Необходимо указывать, если в фильтрах используется не английский язык (т.е. очень часто).
Пример: encode=utf8


params_dump - флаг сохранения переданных от клиента GET и POST параметров в отдельный файл в папку data. Имя файла формируется как "дата_время_ip-адрес-клиента".
1 - сохранять, 0 - не сохранять, по умолчанию 0.
Пример: params_dump=1

re_url - регулярное выражение для включения фильтрации нужных страниц из домена по URL из запроса пользователя. Если параметр не задан - фильтры из этой секции не сработают.
Пример: re_url=^/cgi-bin


param - фильтры по параметрам GET запроса пользователя.
Несколько фильтров (что-то),(что-то) склеиваются логическим "И".
Значения внутри фильтра склеиваются логическим "ИЛИ":
(имя_параметра_1:значение_1|значение_2|значение_3...),(имя_параметра_2:значение_1|значение_2...)...
Параметр работает только при наличии re_url
Пример: param=(text:окна|окно|пластиковые окна|купить окно),(lr:242)


re_beginN - для поиска текста ДО начала заменяемого фрагмента. N - число от 1 до 100
Пример: re_begin4=<div class="b-title"><h1>

re_endN - для поиска текста ПОСЛЕ конца заменяемого фрагмента. N - число от 1 до 100
Пример: re_end4=</h1></div>
Весь текст, стоящий ПОСЛЕ завершения beginN и ДО начала endN заменяется на значение из replaceN
replaceN - простой текст, значение для подстановки. N - число от 1 до 100
Пример: replace3=Превед!!!
Если задан параметр re_beginN, то параметры re_endN и replaceN будут являться обязательными.
re_targetN - регулярное выражение, которое будет целиком заменяться на значение из replaceN при обнаружение в коде страницы сайта
Пример: re_target3=<h1>Google</h1>

replace_countN - необязательный параметр, задает сколько раз будут произведена замена фрагмента. Если replace_count не задан, будут заменяться все найденные фрагменты. N - число от 1 до 100.
Пример: replace_count2=3

Поиск и замена нужного фрагмента на загружаемой странице может проводится двумя способами:
  • указанием re_beginN, re_endNreplaceN (и, если нужно, replace_countN)
  • указанием re_targetN, replaceN (и, если нужно, replace_countN)
Число N должно быть одним и тем же для одной группы параметров, т.е. если вы задали re_target1, то должен быть и re_end1, и replace1.

В одном файле для одного домена можно указать несколько секций, фильтры в которых будут выполняться независимо друг от друга.

4 комментария:

  1. Нормально так намутили ) Регулярки полностью поддерживает или урезаный вариант?

    ОтветитьУдалить
  2. Полностью. Скрипт на питоне, там стандартный модуль re для регулярных выражений.

    ОтветитьУдалить
  3. Вполне быстро. Задержка на самом скрипте менее 300 миллисекунд + время на соединение с вашим сервером. Реально в среднем время загрузки сайтов увеличивается на 1-1,5 секунды.

    ОтветитьУдалить