Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

15.4 А примеры имеются ?

Простой и очень быстрый редиректор, называемый SQUIRM - хороший выбор для начала, он использует библиотеку regex lib для проверки совпадения шаблона.

Также см. jesred.

Следующий скрипт на Perl может использоваться как шаблон при написании собственного редиректора:

#!/usr/local/bin/perl

$|=1;

while (<>) {

s@http://fromhost.com@http://tohost.org@;

print;

}

15.5 Can I use the redirector to return http redirect messages?

Обычно возможности редиректора используются для подмены запрошенных URL-лов. Squid прозрачно запрашивает новые URL. Однако в некторых ситуациях может потребоваться возвращать клиенту сообщения о перенаправлении HTTP "301" или "302". Это возможно начиная с версии Squid 1.1.19.

Просто измените вашу программу-редиректор, чтобы она подставляла "301:" или "302:" перед новым URL. К примеру, следующий скрипт может использоваться для направления внешнего клиента к внутреннему документу на секьюрном Web-сервер:

#!/usr/local/bin/perl

$|=1;

while (<>) {

@X = split;

$url = $X[0];

if ($url =~ /^http:\/\/internal\.foo\.com/) {

$url =~ s/^http/https/;

$url =~ s/internal/secure/;

print "302:$url\n";

} else {

print "$url\n";

}

}

Please see sections 10.3.2 and 10.3.3 of RFC 2068 for an explanation of the 301 and 302 HTTP reply codes.

15.6 Fatal: All redirectors have exited!

Процесс редиректора никогда не должен заканчиваться (прекращать выполнение). Если вы видите сообщение ``All redirectories have exited'', это скорее всего значит, что в вашем редиреторе есть баг. Возможно не хватает памяти или есть ошибка при обращении к ней. Если хотите, можете протестировать ваш редиректор вне сквида с большими входящими списками, взятыми к примеру из вашего access.log . Также проверьте файл coredump вашего редиректора.

15.7 Редиректор не срабатывает при повторной отработке ident

Я добавил редиректор, состоящий из

#! /bin/sh

/usr/bin/tee /tmp/squid.log

и многие из прошедших через редиректор запросов не имеют имени пользователя в поле ident.

Squid не приостанавливает обработку запроса с целью дождаться результатов работы ident, пока вы не используете ACL-ы типа ident. Т.е. скорее всего, что ident недоступен во время вызова редиректора, но он будет доступен в то время, когда обработка запроса будет закончена и записана в access.log.

Если вы хотите блокировать запросы ожидающие отработки ident, попробуйте нечто подобное:

acl foo ident REQUIRED

http_access allow foo

16. Кэш Сборники

Кэш Дайджест часто задаваемые вопросы составленный Найла Доэрти .

16.1 Что такое кэш дайджест?

Кэш Дайджест представляет собой краткое содержание кэширования объекта сервера Интернета. Он содержит, в компактном (т.е. сжатый) Формат, указание или нет конкретного URL-адреса находятся в кэше.

"С потерями" метод используется для сжатия, что означает, что очень высокий коэффициент сжатия может быть достигнуто за счет не имеющий 100% правильную информацию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]