Назад | Перейти на главную страницу

Динамическое изменение пакета с помощью Squid

Есть ли в Squid какие-либо опции, которые позволяют мне динамически изменять пакеты?

Например: я хочу отправить весь пакет, который поступает в Squid, на мой PHP-код, изменить пакет с помощью PHP динамически и повторно отправить его в Squid.

Squid, начиная с версии 3, может выступать в роли клиента ICAP. Если вам удастся создать свой собственный сервер ICAP или плагин к уже существующему серверу C-ICAP (например), вы сможете фильтровать содержимое HTTP-запросов и ответов, а не только URL-адреса, как в случае перезаписи URL-адресов. См. Описание на http://wiki.squid-cache.org/Features/ICAP и список уже существующих серверов ICAP на http://www.squid-cache.org/Misc/icap.html.

Судя по вашему расплывчатому вопросу, я думаю, вы хотите что-то сделать с заголовками HTTP или запросить URI.

Для этого вы можете использовать url_rewrite_* параметры в Squid. Например, настроив Squid для использования некоторого PHP-скрипта для определения правильного URL-адреса, вы можете поместить

url_rewrite_program /path/to/your/script/squid_url_rewrite.php

в конфигурации Squid и убедитесь, что ваш PHP-скрипт наконец возвращает что-то вроде 302:http://www.example.com/.

Если я правильно понимаю ваш вопрос, вы ищете url_rewrite_program директива.

Есть даже пример использования php и, конечно же, в Первоапрельские розыгрыши с прокси-сервером Squid хотя все они на perl.