MyTetra Share
Делитесь знаниями!
Privoxy - прокси-сервер для фильтрации веб-содержимого
Время создания: 17.05.2009 16:57
Текстовые метки: proxy, прокси, фильтрация, linux
Раздел: Компьютер - Linux - Сеть в Linux
Запись: xintrea/mytetra_syncro/master/base/0000000920/text.html на raw.github.com

Privoxy - прокси-сервер для фильтрации веб-содержимого

Privoxy - это локальный прокси-сервер, предназначенный в первую очередь для фильтрации содержимого веб-страниц, борьбы с баннерами, всплывающими окнами и т.д. Его можно взять на http://www.privoxy.org/.

После сборки, установки и запуска privoxy необходимо настроить Ваш браузер на использование его в качестве прокси-сервера. В различных браузерах это делается по-разному (в Opera это делается в диалоге Настройки\Сеть\Прокси-серверы, в Konqueror - Настройка\Настроить Konqueror\Прокси\Указать параметры прокси вручную). Необходимо указать в качестве адреса localhost (в Konqueror необходимо указать http://localhost), в качестве порта - 8118. Теперь можно набрать в адресной строке браузера адрес p.p (или, что то же самое, config.privoxy.org) и попасть на главную страницу веб-интерфейса прокси-сервера (она откроется по этому адресу только в том случае, если privoxy запущен, а браузер правильно настроен), откуда можно, помимо всего прочего, изменить настройки или посмотреть, какие правила будут применены к определенному URL.

Суть работы privoxy в том, что запрошенный браузером URL сравнивается с шаблонами из файлов конфигурации и либо блокируется (браузеру отправляется пустой файл либо страница с сообщением, что запрос блокирован), либо пропускается (тогда полученная с сервера страница передается браузеру как есть), либо фильтруется (содержимое, полученное с сервера, перед передачей браузеру пропускается через фильтры, которые, возможно, изменяют это содержимое). Действия, применяемые к адресу, определяются файлами standard.action, default.action и user.action, а сами фильтры - файлом default.filter. Каждое правило из файла .action состоит из шаблона адреса и набора включаемых либо выключаемых для этого шаблона действий. Например, строка +filter {banners-by-size} включает для всех адресов, подпадающих под указанный шаблон, фильтрацию содержимого с целью вырезания ссылок на картинки (баннеры) определенного размера (а та же строка, но с минусом вместо плюса, выключает такую фильтрацию для этих адресов). Строка +block полностью блокирует запросы к данным адресам.

Отдельно надо рассмотреть правило +prevent-compression. Некоторые сервера могут сжимать веб-страницы перед передачей их клиенту. Это, разумеется, очень сильно уменьшает передаваемый по сети объем и при медленных соединениях очень заметно. Но, к сожалению, privoxy не умеет фильтровать содержимое сжатых таким образом страниц. Т.е. все правила +filter для сжатых страниц не имеют смысла (что, впрочем, не мешает блокировать запросы к таким страницам по их адресу при помощи +block), что ведет к невозможности вырезания баннеров и т.д. По этой причине в стандартной конфигурации (внимание!) сжатие отключается для всех серверов. Если увеличение скорости (или уменьшение траффика) для определенных серверов для Вас важнее фильтрации баннеров на них (повторю, что сжатие поддерживается лишь небольшим числом веб-узлов), замените в файле default.action строку +prevent-compression на -prevent-compression. В крайнем случае (если нужны и то, и другое) можно попробовать похожий на privoxy прокси-сервер middleman (только версию 1.9.1, а не 2.0.1 - она менее кривая).

В файле default.filter содержатся фильтры - регулярные выражения для изменения содержимого веб-страниц. Поскольку это стандартные выражения вида s/foo/bar/g, знакомые многим по perl, sed или vim, при необходимости легко можно писать собственные правила для замены.

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования