|
7 Troubleshooting7.1 Почему у меня нет доступа к прокси: "Proxy Access Denied"?Если squid работает в режиме httpd-ускорителя, то все HTTP запросы он перенаправляет на HTTP сервер, но не работает как прокси. Если Вы хотите, чтобы Ваш кеш также отрабатывал прокси-HTTP запросы, надо сделать следующее:http_accel_with_proxy on Также, возможно Вы неправильно задали ACL. Проверьте файлы access.log и squid.conf. 7.2 Не работает local_domain.Squid кеширует объекты из локального домена.Директива local_domain не запрещает кешировать локальные объекты. Она предотвращает использование братских кешей для локальных объектов. Если Вам все таки это нужно, то воспользуйтесь опциями cache_stoplist или http_stop (в зависимости от версии). 7.3 Когда кеш пытается получить объект с братского кеша, получает Connection Refused, даже когда тот кеш считает, что объект получен успешно.Если ICP порт верный, а HTTP порт-нет, то ICP запросы будут посылаться нормально, а ICP ответы заставят кеш думать, что все в порядке, но сами объекты будут пропадать. Если братский кеш измениит свой http_port, то у Вас будут те же проблемы некоторое время до уведомления.7.4 Не хватает файловых дескрипторовЭто бывает, когда появляется сообщение Too many open files. Возможно из-за операционной системы с низким числом файловых дескрипторов. Этот предел обычно можно задать в ядре или при помощи других средств. Существует два пути исчерпать лимит файловых дескрипторов: первый, это лимит на каждый процесс, второй - на общее число дескрипторов на все процессы.Для Linux, есть патч filehandle.patch.linux от Michael O'Reilly <michael@metal.iinet.net.au>. Для Solaris, добавьте следующее в файл /etc/system: set rlim_fd_max = 4096
Также следует задать #define SQUID_FD_SETSIZE в include/config.h в то же значение, что и rlim_fd_max. Не следует задавать меньше 4096. Solaris select(2) позволяет задать только 1024 дескриптора, если надо больше отредактируйте src/Makefile и разрешите $(USE_POLL_OPT). Потом пересоберите squid. Для FreeBSD (от Torsten Sturm <torsten.sturm@axis.de>):
sysctl -w kern.maxfilesperproc=XXXX Внимание: Увеличивая значения, учитывайте соотношение maxfiles > maxfilesperproc.
int nfile = 16 * (NPROC + 16 + MAXUSERS) / 10 + 64; Где NPROC определяется как: #define NPROC (10 + 16 * MAXUSERS) int maxfiles = NPROC*2; int maxfilesperproc = NPROC*2; Где NPROC задан как: #define NPROC (20 + 16 * MAXUSERS) Ограничение числа дескрипторов на процесс также может быть задано в конфигурации ядра этой директивой: options OPEN_MAX=128 int maxfiles = 3 * (NPROC + MAXUSERS) + 80; Где NPROC задан как: #define NPROC (20 + 16 * MAXUSERS) Также следует задать значение OPEN_MAX, чтобы изменить ограничение числа дескрипторов на процесс. cd squid-1.1.x make realclean ./configure --prefix=/usr/local/squid make 7.5 Мой squid периодически вываливается с ошибкой, что не может malloc(3) больше памяти, но у меня достаточно ОЗУ!Кроме ограничения на число файловых дескрипторов, многие системы имеют ограничение на количество памяти, выделяемое процессу, в особенности не-root процессам. BSD/OS имеет довольно низкий предел, который Вы можете увеличить. Измените файл конфигурации ядра, добавив эти строки:options DFLDSIZ=67108864 # 64 meg default max data size (was 16) options MAXDSIZ=134217728 # 128 meg max data size (was 64)Пересоберите ядро и перезагрузите машину. В Digital UNIX, отредактируйте файл /etc/sysconfigtab и добавьте строку... proc: per-proc-data-size=1073741824Или, в csh, используя команду limit ... zpoprp.zpo.dec.com> limit datasize 1024M Редактирование /etc/sysconfigtab требует перезагрузки, а команда limit - нет. 7.6 Что за странные строки об удалении объектов?Например:97/01/23 22:31:10| Removed 1 of 9 objects from bucket 3913 97/01/23 22:33:10| Removed 1 of 5 objects from bucket 4315 97/01/23 22:35:40| Removed 1 of 14 objects from bucket 6391Обычные строки log файла, но они не значат, что squid достиг cache_swap_high. На странице cache information вcachemgr.cgi найдите строку типа этой: Storage LRU Expiration Age: 364.01 daysОбъекты, которые не использовались данное количество времени, удаляются как результат регулярных работ. Вы можете задать собственное значение LRU Expiration Age при помощи reference_age в конфигурационном файле. 7.7 Почему я не могу задать cache_effective_user в nobody под Linux?Несколько пользователей сообщали, что они не могут задать cache_effective_user в nobody под Linux и сервер сообщает:FATAL: Don't run Squid as root, set 'cache_effective_user'!Однако, если установить cache_effective_user не в nobody, то все ОК. Первое решение, это создать пользователя для Squid и установить для него cache_effective_user. Также можно поменять UID nobody с 65535 на 65534. 7.8 Могу я указать Windows NT FTP серверу выводить директории в Unix формате?Почему бы и нет! Выберите следующие пункты меню:
Дальше надо выбрать сервер (должен быть только один), потом выберите "Properties" из меню, закладку "directories", будет опция "Directory listing style." Выберите "Unix" type, а не "MS-DOS" type. --Oskar Pearson <oskar@is.co.za>7.9 Почему так часто появляются сообщения ERR_NO_CLIENTS_BIG_OBJ?Это значит, что запрашиваемый объект находился в режиме "Удалить позже" и пользователь отказался от передачи. Объект попадет в режим "Удалить позже" если он:
7.10 Почему Squid требует так много памяти!?Squid потому такой быстрый и может обрабатывать одновременно несколько запросов, что использует много памяти. Для начала, просмотрите эти разделы FAQ:
7.11 Почему я получаю "Ignoring MISS from non-peer x.x.x.x"?Вы получаете ICP MISS (через UDP) с родительского или братского кеша, чей IP адрес Вашему кешу не известен. Это может быть в двух случаях.(1) Если на том конце несколько интерфейсов и пакеты идут с того, который не прописан в DNS. Вообще-то, это их проблема. Вы можете сказать им или прописать IP адрес интерфейса в DNS, или использовать опцию Squid 'udp_outgoing_address'. Например: # (squid.conf родительского кеша) # udp_outgoing_address proxy.parent.com # (Ваш squid.conf) # cache_host proxy.parent.com parent 3128 3130(2) Также это сообщение будет появляться при посылке ICP запросов на несколько адресов. Для обеспечения безопасности, Squid требует задания в конфигурации списка других кешей, слушающих группу адресов. Если неизвестный кеш слушает этот адрес и шлет ответы, ваш кеш будет писать в log эти сообщения. Чтобы исправить надо, либо сказать этому кешу перестать слушать адреса, или, если он законный, добавьте его в файл конфигурации. Страница 1 2 3 4 5 6 7 8 9 <<< Предыдущая Следущая >>> |
Украинская Баннерная Сеть
|