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

11.36 Я получаю большое количество ошибок типа ``uri has whitespace'' в моем cache.Log, что я должен делать ?

Разделительные символы (пробел, табуляция, новая строка, перевод каретки) не разрешены в URI и URL. К сожалению большое количество Web-серверов генерируют URL с разделителями. И конечно ваш любимый броузер тихо пропускает этот неверный URL. Сервера (или люди), генерирующие подобные URL-лы нарушают стандарты Internet. Разделительные символы должны кодироваться.

Если вы хотите, чтобы Squid принимал URL-лы с разделителями, вам необходимо определиться как вы будете поддерживать подобную возможность. Есть 4-ре способа использования опцииuri_whitespace:

  1. DENY: Запрос будет запрещен с сообщением ``Invalid Request''. Это поведение по умолчанию.

  2. ALLOW: Запрос разрешается и URL остается неизменным.

  3. ENCODE: Разделительные символы кодируются согласно RFC 1738. Это может быть рассмотрено как нарушение спецификации HTTP.

  4. CHOP: URL обрезается на первом разделителе и потом обрабатывается как обычно. Это также может быть рассмотрено как нарушение HTTP.

11.37 CommBind: Cannot bind socket fd 5 to 127.0.0.1:0: (49) Can't assign requested address

Это скорее всего значит, что ваша система не имеет сетевого устройства обратной петли или устройство неправильно настроено. Все Unix-системы должны иметь сетевое устройство, называемое lo0, и для него должен быть указан адрес 127.0.0.1. Если такого нет, то вы можете получить сообщение о ошибке, указанное выше. Чтобы проверить вашу систему, запустите:

% ifconfig lo0

Результатом должно быть нечто подобное:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

inet 127.0.0.1 netmask 0xff000000

Если вы используете FreeBSD, загляните сюда.

11.38 Unknown cache_dir type '/var/squid/cache'

Формат опции cache_dir был изменен в версии 2.3. Теперь необходим аргумент type. Все что нужно - вставить ufs в строку, типа:

cache_dir ufs /var/squid/cache ...

11.39 Unrecognized: 'cache_dns_program /usr/local/squid/bin/dnsserver'

Squid 2.3 по умолчанию ипользует встроенный DNS. В этом случае опции cache_dns_program и dns_children выглядят как неизвестные директивы в squid.conf. Просто закоментируйте эти два параметра.

Если вы желаете использовать внешний DNS вместе программной dnsserver, при конфигурировании добавьте такой ключ:

--disable-internal-dns

11.40 Is dns_defnames broken in 2.3.Stable1 and stable2?

Начиная с версии Squid 2.3, по умолчанию используется встроенный в код DNS. Опция dns_defnames используется только для внешнего процесса dnsserver. Если вы пытались испоьзоватьdns_defnames раньеш, то у вас три выхода:

  1. Присмотреться не подойте ли вам опция append_domain взамен этого.

  2. Сконфигурировать squid с опцией --disable-internal-dns, чтобы использовать внешний dnsservers.

  3. Просмотреть src/dns_internal.c чтобы понять для чекго нужны строки search и domain в файле /etc/resolv.conf.

11.41 What does sslReadClient: fd 14: read failure: (104) Connection reset by peer mean?

``Connection reset by peer'' - это сообщение о ошибке, которое иногда возвращает операционная система Unix для readwriteconnect и других системных вызовов.

Connection reset значит, что удаленных хост, братский кеш к примеру, послал пакет RESET для TCP-соединения. Хост посылает RESET, когда получает неожидавшийся пакет для несуществующего соединения. К примеру, если одна сторона посылает данные в тот же момент, когда другая строна закрыла соединение, тогда получившая пакет сторона может в ответ послать RESET.

Факт, что подобное сообщение появилось в логе Squid может означать проблему соединения с родительским кешем или запрашиваемым хостом. С другой стороны это может быть и ``нормой'', особенно если учесть, что некоторые приложения принудительно посылают reset прежде чем нормально завершить соединение.

Возможно вам не стоит беспокоится об этом, пока вы не увидите большого кол-ва подобных сообщений при работе с SSL-сайтами.

Rick Jones подметил, что если сервер работает через стек Microsoft TCP stack, то клиент получает сегмент RST, когда переполняется очередь на порту, ожидающем соединения. Другими словами, если сервер действительно занят, то новые соединения получат сообщение reset. Это не рационально, но изменению не подлежит.

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