- •1. О Squid, этом faq, и других информационных ресурсах по Squid
- •1.1 Что такое Squid?
- •1.8 Работает ли Squid под Windows nt?
- •1.9 Какие доступны листы рассылки по Squid ?
- •1.10 Я не могу найти описание как отписаться от вашего списка рассылки.
- •1.11 Какие веб-страницы посвящены Squid ?
- •1.12 Поддерживает ли Squid ssl/https/tls?
- •1.15 Могу ли я заплатить кому-нибудь за поддержку Squid ?
- •1.16 Создатели Squid faQrus
- •1.17 О этом документе
- •1.13 Каков официальный статус Squid?
- •1.14 Совместим ли Squid c проблемой 2000 ?
- •2. Получение и компиляция Squid
- •2.1 Какие файлы мне загрузить ?
- •2.2 Как мне откомпилировать Squid?
- •2.3 Какой компилятор мне необходим?
- •2.4 Что еще мне необходимо для компиляции Squid?
- •2.5 А есть откомпилированные бинарники?
- •2.6 Как мне наложить патч ?
- •2.7 Опции configure.
- •2.8 Undefined reference to __inet_ntoa
- •2.9 Как мне получить действительное dns ttl в ip-rtit Squid?
- •2.10 Моя платформа - bsd/os или bsdi и я не могу откомпилировать Squid.
- •2.11 Проблемы компиляции libmiscutil.A на Solaris.
- •2.12 У меня проблемы при компиляции Squid на некоторой платформе.
- •2.13 Я вижу много предупреждений во время компиляции.
- •2.14 Сборка Squid на os/2
- •3. Установка и запуск Squid
- •3.1 Насколько мощная система мне необходима, чтобы запускать Squid?
- •3.2 Как мне установить Squid?
- •3.3 Что делает файл squid.Conf?
- •3.4 А у вас есть пример squid.Conf?
- •3.5 Как мне запустить Squid?
- •3.6 Как мне запускать Squid автоматически во время загрузки системы?
- •3.7 Как узнать запущен ли Squid?
- •3.8 Опции командной строки squid.
- •3.9 Как мне посмотреть как работает Squid ?
- •4. Проблемы настройки
- •4.1 Как мне присоединится к иерархии кешей ?
- •4.9 Как мне настроить в Squid перенаправление всех запросов на другой прокси ?
- •4.10 У меня есть процессы dnsserver, которые не используются, нужно ли мне уменьшить их кол-во в squid.Conf?
- •4.11 Среднее время обработки запроса моим dnsserver достаточно велико, как мне его уменьшить ?
- •4.12 Каким самым простым способом я могу изменить http-порт, установленный по умолчанию?
- •4.13 Возможно ли контролировать насколько велика каждая из cache_dir?
- •4.14 Какой размер cache_dir должен использовать?
- •4.15 Я добавил новую cache_dir. Потеряю ли я свой кеш ?
- •4.16 Squid и http-gw из пакета tis.
- •4.17 Что такое ``http_x_forwarded_for''? Почему squid снабжает ним www-сервера и как мне это прекратить?
- •4.18 Может ли Squid сделать анонимными http-запросы?
- •4.19 Могу ли я заставить Squid ходить напрямую на некоторые сайты?
- •4.20 Могу ли я заставить Squid ходить напрямую на некоторые сайты?
- •4.21 Могу ли я предотвратить закачку больших файлов пользователями?
- •5. Взаимодействие между броузерами и Squid-ом
- •5.1 Ручная настройка Netscape
- •5.2 Автоматическая настройка Netscape
- •5.3 Настройка Lynx и Mosaic
- •5.4 Redundant Proxy Auto-Configuration
- •5.5 Proxy Auto-Configuration with url Hashing
- •5.6 Настройка Microsoft Internet Explorer
- •5.7 Настройка Netmanage Internet Chameleon WebSurfer
- •5.8 Настройка прокси в Opera 2.12
- •5.9 Как мне указать Squid использовать определенное имя пользователя для ftp?
- •5.10 Настройка броузеров для wpad
- •5.11 Настройка броузеров для wpad с dhcp.
- •5.12 Ie 5.0x crops trailing slashes from ftp url's
- •5.13 Ie 6.0 sp1 не работает при использовании аутентификации basic.
- •6. Файлы журналов Squid
- •6.1 Squid.Out
- •6.2 Cache.Log
- •6.3 Useragent.Log
- •6.4 Store.Log
- •6.5 Hierarchy.Log
- •6.6 Access.Log
- •6.7 Результирующие коды Squid
- •6.8 Http status codes
- •6.9 Методы запроса
- •6.10 Коды иерархий
- •Invalid code
- •6.11 Cache/log (Squid-1.X)
- •6.12 Swap.State (Squid-2.X)
- •6.13 Какие лог-файлы я могу безопасно удалить?
- •6.18 Почему я так часто получаю сообщения получаю err_no_clients_big_obj?
- •6.19 Что значит err_lifetime_exp?
- •6.20 Восстановление ``потеряных'' файлов из кеша.
- •6.21 Могу ли я использовать store.Log,чтобы определить был ли объект закеширован ?
- •7.4 Как я могу проксировать/кешировать Real Audio?
- •7.5 Как мне удалить объект из кеша?
- •7.6 Using icmp to Measure the Network
- •Inspecting the database
- •7.7 Почему так мало запросов tcp_ims_miss попадают в лог?
- •7.8 Как мне заставить Squid не кешировать некоторые сервера или url-ы?
- •7.9 Как я могу удалить и вновь создать кеш?
- •7.10 Почему я не могу запустить Squid как root?
- •7.11 Можете ли вы подсказать мне хороший вариант обновления Squid с минимальными затратами времени?
- •7.12 Может ли Squid слушать более одного http-порта ?
- •7.12 Can Squid listen on more than one http port?
- •7.13 Can I make origin servers see the client's ip address when going through Squid?
- •8.2 Как мне узнать сколько памяти использует мой процесс Squid ?
- •8. Память
- •8.1 Почему Squid использует так много памяти!?
- •8.3 Мой процесс Squid безгранично растет.
- •8.4 Я установил параметр cache_mem равным XX, но мой процесс превышает это значение !
- •8.5 Как мне проанализировать использование памяти, основываясь на показаниях кеш-менеджера ?
- •8.6 Значение ``Total memory accounted'' меньше, чем размер моего процесса Squid.
- •8.7 Xmalloc: Unable to allocate 4096 bytes!
- •8.8 Fork: (12) Cannot allocate memory
- •8.9 Как я могу уменьшить размер используемой Squid-ом памяти ?
- •8.10 Использование альтерантивной библиотеки malloc.
- •8.11 Сколько памяти необходимо моему серверу Squid ?
- •9. Менеджер кеша
- •9.1 Что такое кеш-менеджер ?
- •9.2 Как мне его установить ?
- •9.3 Настройка кеш-менеджера для cern httpd 3.0
- •9.4 Настройка кеш-менеджера для Apache
- •9.5 Настройка кеш-менеджера для Roxen 2.0 и более поздних версий
- •9.7 Почему он говорит, что мне небходим пароль и url ?
- •9.8 Я хочу остановить кеш удаленно. Какой пароль ?
- •9.9 How do I make the cache host default to my cache?
- •9.23 Что такое fqdncache и чем он отличается от ipcache?
- •9.24 Что значит ``Page faults with physical I/o: 4897'' ?
- •9.25 Что значит поле ignored в 'cache server list' ?
- •10. Контроль доступа
- •10.1 Введение
- •10.2 Как мне разрешить моим клиентам использовать кеш?
- •10.3 Как мне настроить Squid, чтобы он не кешировал определенный сервер?
- •10.4 Как мне организовать acl списка запрета?
- •10.5 Как мне блокировать доступ к кешу определенным пользователям и группам?
- •10.6 А у вас есть cgi-программа, позволяющая пользователям менять свой пароль доступа к прокси?
- •10.7 Есть ли способ осуществлять поиск ident только для определенного хоста и сравнивать результат со списком пользователей в squid.Conf?
- •10.8 Типичные ошибки
- •10.9 Я установил собственные контроли доступа, но они не работают! Почему?
- •10.10 Прокси-аутентификация и братские кеши
- •10.11 Какой самый простой способ запретить все адреса назначения кроме одного?
- •10.13 Squid не распознает мой поддомен
- •10.14 Почему Squid запрещает доступ к некоторым портам?
- •10.20 Могу ли я устанавливать acl-лы, основанные на mac-адресах, а не на ip?
- •10.21 Отладка acl
- •10.22 Могу ли я ограничить количество соединений для клиента?
- •10.23 Я пытаюсь запретить доступ к foo.Com, но это не срабатывает.
- •10.24 Я хочу изменить или создать собственное сообщение о ошибке.
- •10.25 Я хочу видеть локальную временную зону в сообщениях о ошибке
- •11. Решение проблем
- •11.1 Почему я получаю ``Proxy Access Denied?''
- •11.2 Я не могу заставить работать local_domain.Squidкеширует объекты с моих локальных серверов.
- •11.3 Я получаю Connection Refused, когда кеш пытается получить объект с братского кеша (sibling), хотя братский кеш считает, что он отдал объект моему кешу.
- •11.4 Кончаются файловые дескрипторы.
- •11.5 Что за странные строки о удалении объектов?
- •11.6 Могу ли заставить Windows nt ftp-сервер показывать директории в формате Unix?
- •11.7 Почему я получаю ``Ignoring miss from non-peer X.X.X.X?''
- •11.8 Dns lookups for domain names with underscores (_) always fail.
- •11.9 Почему Squid сообщает: ``Illegal character in hostname; underscores are not allowed?'
- •11.10 Почему я получаю запрет доступа от братского кеша ?
- •11.11 Cannot bind socket fd nn to *:8080 (125) Address already in use
- •11.12 IcpDetectClientClose: error XXX.XXX.XXX.XXX: (32) Broken pipe
- •11.13 IcpDetectClientClose: fd 135, 255 unexpected bytes
- •11.14 Does Squid work with ntlm Authentication?
- •11.15 Опция default parent не работает!
- •11.16 ``Hot Mail'' complains about: Intrusion Logged. Access denied.
- •11.17 Мой Squid становиться слишком медленным после того, как проработает некоторое время.
- •11.18 Warning: Failed to start 'dnsserver'
- •11.19 Как послать отчет о ошибке в Squid
- •11.20 Отладка Squid
- •11.21 Fatal: ipcache_init: dns name lookup tests failed
- •11.22 Fatal: Failed to make swap directory /var/spool/cache: (13) Permission denied
- •11.23 Fatal: Cannot open http Port
- •11.24 Fatal: All redirectors have exited!
- •11.25 Fatal: file_map_allocate: Exceeded filemap limit
- •11.26 Fatal: You've run out of swap file numbers.
- •11.27 I am using up over 95% of the filemap bits?!!
- •11.28 Fatal: Cannot open /usr/local/squid/logs/access.Log: (13) Permission denied
- •11.29 Когда я использую имя пользователя и пароль, я не имею доступа к некоторым файлам.
- •11.30 PingerOpen: icmp_sock: (13) Permission denied
- •11.31 Что такое петля передачи ?
- •11.32 Accept failure: (71) Protocol error
- •11.33 StoreSwapInFileOpened: ... Size mismatch
- •11.34 Почему я получаю fwdDispatch: Cannot retrieve 'https://www.Buy.Com/corp/ordertracking.Asp' ?
- •11.35 Squid не может получить url-ы типа http://3626046468/ab2/cybercards/moreinfo.Html
- •11.36 Я получаю большое количество ошибок типа ``uri has whitespace'' в моем cache.Log, что я должен делать ?
- •11.37 CommBind: Cannot bind socket fd 5 to 127.0.0.1:0: (49) Can't assign requested address
- •11.38 Unknown cache_dir type '/var/squid/cache'
- •11.39 Unrecognized: 'cache_dns_program /usr/local/squid/bin/dnsserver'
- •11.40 Is dns_defnames broken in 2.3.Stable1 and stable2?
- •11.41 What does sslReadClient: fd 14: read failure: (104) Connection reset by peer mean?
- •11.42 Что значит Connection refused?
- •11.43 Squid: error: no running copy
- •11.44 Fatal: getgrnam failed to find groupid for effective group 'nogroup'
- •11.45 ``Unsupported Request Method and Protocol'' for https urLs.
- •11.46 Squid использует 100% cpu
- •11.47 Webmin's cachemgr.Cgi убивает операционную систему
- •11.48 Segment Violation во время запуска или при первом запросе
- •11.49 UrlParse: Illegal character in hostname 'proxy.Mydomain.Com:8080proxy.Mydomain.Com'
- •11.50 Не работают запросы для инетрнациональных доменных имен
- •11.51 Почему иногда я получаю ``Zero Sized Reply''?
- •12. Как работает Squid?
- •12.1 Что такое кешируемые объекты?
- •12.2 Что такое пмс протокол?
- •12.3 Что такое dnsserver ?
- •12.4 Для чего предназначена программа ftpget ?
- •12,5 Ftp put не работает!
- •12.6 Что такое иерархии кэш-памяти? Какие родители, братья и сестры?
- •12.7 Что такое разрешение кеш алгоритм?
- •12,8 Над какими новыми возможностями сейчас работают разработчики Squid?
- •12,9 Расскажите подробнее о рабочих нагрузок интернет-трафика
- •12.10 Каковы компромиссы кэширования с системой кэш nlanr?
- •12.11 Где мне найти больше информации о файервол?
- •12.12 Что такое `` хранения lru истечения Возраст?''
- •12.13 Что такое `` Отказ побед на 1,01; Войдя в хит-Only-режиме в течение 5 минут''?
- •12.14 Перечитывает ли кальмар периодически свой файл конфигурации?
- •12.15 Как unlinkd работу?
- •12.16 Что такое икона url?
- •12.17 Как мне заставить моих обычных ftp-клиентов и спользовать Squid?
- •12.18 Почему Выберите время средние петли так высоко?
- •12.19 Как Squid дело с печеньем?
- •12.20 Как Squid решает, когда, чтобы обновить в кэше объект?
- •12.21 Что такое отложенное чтение ?
- •12.22 Почему входящий трафик моего кэша равным исходящий трафик?
- •12.23 Почему некоторые предметы не попали кэшировать?
- •12.24 Что поддержания активности соотношение означает?
- •12.25 Как работает кэш Squid-алгоритм замены работы?
- •12.26 Какие закрытых и открытых ключей?
- •12.27 Для чего нужна forw_via_db?
- •12.28 Посылает ли Squid пакеты порту 7 (эхо)? Если да, то почему?
- •12.29 Что значит `` предупреждение: Ответ от неизвестных имен [abcd]''?
- •12.30 Как Squid распространения кэш-файлов среди доступных каталогах?
- •12.31 Почему я вижу отрицательную Процент попадания байт?
- •12.32 Что означает сообщение `` Отключение использования закрытых ключей'' означает?
- •12.33 Что такое наполовину закрытый файловый дескриптор?
- •12.34 Что делает - Enable-кучи замену?
- •12.35 Почему действительный размер используемый размер файловой ситсемы больше, чем считает Squid?
- •12.36 Как работают positive_dns_ttl и negative_dns_ttl ?
- •12.37 Что значит swapin md5 несоответствие ?
- •12.38 Что означает не удалось распаковать файл подкачки данных мета ?
- •12.39 Почему не сделать Squid Ident поиска в режиме перехвата?
- •12.40 DnsSubmit: перегрузки очереди, отвергая бла
- •12.41 Что такое пассивные ftp-соединения?
- •13. Multicast
- •13.1 Что такое Multicast?
- •13.2 Как я могу знать, если я нахожусь на Mbone?
- •13.3 Мне следует использовать Multicast пмс?
- •13.4 Как мне настроить Squid для отправки Multicast icp запросы?
- •13.5 Как я знаю, что Multicast ttl использовать?
- •13.6 Как мне настроить Squid, чтобы получать и отвечать на Multicast пмс?
- •14. Системно-зависимые сверхестественности :)
- •14.1 Solaris
- •14.2 FreeBsd
- •14.5 Linux
- •14.7 Irix
- •15. Редиректоры
- •15.1 Что такое редиректор?
- •15.2 Почему используют редиректор?
- •15.3 Как это работает?
- •15.4 А примеры имеются ?
- •15.5 Can I use the redirector to return http redirect messages?
- •15.6 Fatal: All redirectors have exited!
- •15.7 Редиректор не срабатывает при повторной отработке ident
- •16. Кэш Сборники
- •16.1 Что такое кэш дайджест?
- •16.2 Как и почему они используются?
- •16.3 Что такое теория за кэш дайджесты?
- •16.4 Как размер кэша дайджест на Squid определяется?
- •16.5 Что хэш-функции (и сколько их) а Squid использовать?
- •16.6 Как объекты добавляются в кэш дайджест на Squid?
- •16,7 Ли Squid поддержки делеции в кэш дайджесты? Каковы различий / дельт?
- •16,8 Когда и как часто местные дайджест построили?
- •16.9 Как Кэш Дайджесты передаваться между сверстниками?
- •16.10 Как и где хранится кэш дайджесты?
- •16.11 Как Кэш Дайджест статистики в Cache Manager следует интерпретировать?
- •16.12 Какие ложные значения и как они должны быть обработаны?
- •16.13 Как Кэш Дайджест деятельности, связанной прослеживается / отлажена?
- •16.14 А как насчет пмс?
- •16.15 Есть ли Спецификация Cache Digest?
- •16.16 Можно ли будет шататься моменты времени, когда cache_digests извлекаются из сверстников?
- •17. Прозрачное кеширование/проксирование
- •17.1 Прозрачное кеширование для Solaris, SunOs, и bsd систем
- •17.2 Прозрачное кеширование на Linux 2.0 и ipfwadm
- •Этот метод поддерживает только протокол http, gopher и ftp не поддерживаются
- •17.3 Прозрачное кеширование на Linux 2.2 и ipchains
- •17.4 Прозрачное кеширование на Linux 2.4 и netfilter
- •17.5 Прозрачное кеширование и маршуртизаторы Cisco
- •17.6 Прозрачное кеширование на linux 2.0.29 и cisco ios 11.1
- •17.7 Кеш пытается соединится сам с собой ...
- •17.8 Прозрачное кеширование с FreeBsd
- •17.9 Прозрачное кеширование с сервером доступа acc Tigris digital
- •17.10 ``Connection reset by peer'' и Cisco policy routing
- •17.11 Wccp - Web Cache Coordination Protocol
- •Ios Version 11.X
- •Ios Version 12.X
- •17.13 А как насчет wccPv2?
- •17.14 Прозрачное проксирование с свитчами Foundry l4
- •18.3 Конфигурирование Squid 2.2
- •18.4 Конфигурирование Squid 2.1
- •18.5 Как я могу опрашивать Squid snmp Agent
- •18.6 Для чего я могу использовать snmp и Squid?
- •18.7 Как я могу использовать snmp со Squid?
- •18.8 Где я могу найти больше информации о Squid и snmp?
- •18.9 Мониторинг Squid при помощи mrtg
- •19. Squid версии 2
- •19.1 Какие новые возможности?
- •19.2 Как мне теперь настроить 'ssl_proxy'?
- •19.3 Logfile rotation doesn't work with Async I/o
- •19.4 Добавление нового диска для кеша
- •19.5 Squid 2 performs badly on Linux
- •19.6 Как мне настроить proxy authentication в Squid-2?
- •19.7 Почему proxy-auth отвергает всех пользователей в Squid-2.2?
- •19.8 Delay Pools
- •19.9 Могу ли я сохранить мой кеш при обновлении с версии 1.1 до 2?
- •19.10 Пользовательские сообщения о ошибках
- •19.11 Мой squid.Conf от версии 1.1 не работает!
- •20. Режим httpd-акселератора
- •20.1 Что такое режим httpd-акселератора?
- •20.2 Как мне это установить ?
- •20.3 Когда используется httpd-aкселератор, номер порта для редиректа неверен
- •21.5 Сервера идентификации
- •22. Diskd
- •22.1 Что такое diskd?
- •22.7 Как мне настроить распределенную память?
- •22.8 Иногда распределенная память и очереди сообщений не освобождаются, когда Squid завершает работу.
- •22.9 Что за параметры q1 и q2?
- •23. Аутентификация
- •23.1 Как в Squid работает прокси-аутентификация ?
- •23.2 Как мне использовать аутентификацию для контроля доступа?
- •23.3 Кеширует ли Squid запросы аутентификации?
- •23.4 А пароли передаются открытым текстом или шифруются?
- •23.5 Могу ли я использовать Winbind аутентификацию ?
- •24. Термины и определения
- •24.1 Сосед (Neighbor)
- •24.2 Регулярные выражения
- •25. Беспокойство о безопасности
- •25.1 Прокси открытого доступа
- •25.2 Релай почты
11.15 Опция default parent не работает!
Это сообщение получено из squid-bugs:
Если у вас только один родительский кеш, сконфигурированный как:
cache_host xxxx parent 3128 3130 no-query default
ничего не посылается к родительскому прокси ни UDP пакеты, ни TCP.
Простое добавление опции default к свойствам родительского кеша не принуждает все запросы проходить через него. Термин default возможно не совсем точно подобранное слово. Терминdefault в данном случае значит, что родительский прокси будет использоваться как последний источник. Если кеш может установить прямое соединение, то он одаст ему предпочтение перед роделем по умолчанию. Если вы хотите принудительно пропустить все запросы через ваш родительский прокси по умолчанию, используйте опцию never_direct:
acl all src 0.0.0.0/0.0.0.0
never_direct allow all
11.16 ``Hot Mail'' complains about: Intrusion Logged. Access denied.
``Hot Mail'' не больно дружественен по отношению к прокси и требует, чтобы все запросы приходили с одного IP-адреса. Вы можете исправить это, добавив в ваш squid.conf:
hierarchy_stoplist hotmail.com
11.17 Мой Squid становиться слишком медленным после того, как проработает некоторое время.
Скорее всего это из-за того, что Squid использует памяти больше, чем это должно быть для вашей системы. Когда процесс Squid разростается, it experiences a lot of paging. Это очень быстро приведет к снижению качества работы Squid. Использование памяти - это серьезная проблема. There are a number of things to consider.
Прежде всего проверьте, что отдает вам Cache Manager в разделе Info и обратите внимание эти две строки:
Number of HTTP requests received: 121104
Page faults with physical i/o: 16720
Заметьте, что если ваша система не имеет функции getrusage(), то вы не увидите строки page faults.
Разделите число page faults на кол-во соединений. В данном случае это 16720/121104 = 0.14. В идеале это значение должно быть в пределах 0.0 - 0.1. Приемлемо также значение из диапазона 0.1 - 0.2 . Если больше, то вы возможно обнаружили почему Squid работает недопустимо медленно.
Если отношение слишком велико, товам необходимо сделать некторые изменения, чтобы уменьшить кол-во используемой Squid-ом памяти.
11.18 Warning: Failed to start 'dnsserver'
Это означает промбелу с правами. А Squid userid имеет права на запуск программы dnsserver?
Вы также можете протестировать работу dnsserver из командной строки:
> echo oceana.nlanr.net | ./dnsserver
Это вернет примерно следующее:
$name oceana.nlanr.net
$h_name oceana.nlanr.net
$h_len 4
$ipcount 1
132.249.40.200
$aliascount 0
$ttl 82067
$end
11.19 Как послать отчет о ошибке в Squid
Отчет о ошибке в Squid должен быть соплан по адресу squid-bugs alias. Любой отчет о ошибке дожен содержать:
Версию Squid
Тип ваше ОС и ее версию
crashes and core dumps
Есть два условия, при которых squid аварийно завершит работу и сгенериует coredump. Прежде всего это сигнал SIGSEGV или SIGBUS по причине которого Squid завержит работу и оставит dump core. Во-вторых, многие функции включают проверку последовательностей. Если одна из этих проверок закончилась неудачно, то Squid вызывает abort() для генерации core dump.
Многие люди сообщают о том, что Squid не оставляет coredump вообще. Это может быть вызвано следующими причинами:
Лимиты ресурсов. Ваш шел имеет органичение на размер файла coredump. Вам необходимо увелечить этот лимит.
Опции sysctl. На FreeBSD вы не сможете получить coredump от программ, вызываемых по setuid() и/или setgid() (как делает иногда Squid) пока вы не включите эту опцию:
# sysctl -w kern.sugid_coredump=1
Нет отладочных символов. Бинарник Squid должен содержать отладочные символы для того, чтобы получить нормальный coredump.
Треды и Linux. На Linux, приложения использующие треды на генерируют coredump-ов. Когда вы используете --enable-async-io, то используются треды и вы не можете получить coredump.
Приложение оставило файл coredump, вы посто не можете его найти.
Лимиты ресурсов: Эти лимиты могут быть зименены в shell-скрипте. Команда изменения лмитов ресурсов обычно называется limit или limits. Иногда это встроенная функция оболочки, а иногда это обычная программа. Также обратите внимание, что вы можете установить лимиты ресурсов в файле /etc/login.conf на FreeBSD и возможно на других BSD-системах.
Чтобы изменить лимит размера coredump, моете использовать команду типа:
limit coredumpsize unlimited
или
limits coredump unlimited
Отладочные символы: Чтобы посмотреть содержит ли бинарник Squid оталдочные символы, используйте команду:
% nm /usr/local/squid/bin/squid | head
Бинарный файл содержит отладочные символы, если вы видите что-то типа этого:
0812abec B AS_tree_head
080a7540 D AclMatchedName
080a73fc D ActionTable
080908a4 r B_BYTES_STR
080908bc r B_GBYTES_STR
080908ac r B_KBYTES_STR
080908b4 r B_MBYTES_STR
080a7550 D Biggest_FD
08097c0c R CacheDigestHashFuncCount
08098f00 r CcAttrs
Отладочные символы отсутствуюет, если взамен этого в видите:
/usr/local/squid/bin/squid: no symbols
Отладочные символы могут быть удалены вашей программой install. Если вы посмотрите на бинарник squid в директории с исходниками, то он может содержать отладочные символы.
Расположение Coredump: Файл coredump может быть оставлен в одном из следующих мест:
В директории coredump_dir, если вы установили эту опцию.
В первой директории cache_dir. если вы использовали опцию cache_effective_user option.
В текущей на момент старта Squid директории
Ранние версии Squid сообщали о текущей директории после старта, это выглядело так:
2000/03/14 00:12:36| Set Current Directory to /usr/local/squid/cache
Если вы не можете найте файл core, то возможно также, что Squid не имеет прав, чтобы записать это т файл в текущую директорию,или, возможно, ваш лимит оболочки (csh и клонов) предотвращает запись файла core.
Зачастую вы можете получить файл coredump, если запустите Squid из командной строки, примерно так:
% limit core un
% /usr/local/squid/bin/squid -NCd1
Как только вы определили местонахождение файла core dump, используйте отладчик типа dbx или gdb для генерации слепка стека:
tirana-wessels squid/src 270% gdb squid /T2/Cache/core
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.15.1 (hppa1.0-hp-hpux10.10), Copyright 1995 Free Software Foundation, Inc...
Core was generated by `squid'.
Program terminated with signal 6, Aborted.
[...]
(gdb) where
#0 0xc01277a8 in _kill ()
#1 0xc00b2944 in _raise ()
#2 0xc007bb08 in abort ()
#3 0x53f5c in __eprintf (string=0x7b037048 "", expression=0x5f <Address 0x5f out of bounds>, line=8, filename=0x6b <Address 0x6b out of bounds>)
#4 0x29828 in fd_open (fd=10918, type=3221514150, desc=0x95e4 "HTTP Request") at fd.c:71
#5 0x24f40 in comm_accept (fd=2063838200, peer=0x7b0390b0, me=0x6b) at comm.c:574
#6 0x23874 in httpAccept (sock=33, notused=0xc00467a6) at client_side.c:1691
#7 0x25510 in comm_select_incoming () at comm.c:784
#8 0x25954 in comm_select (sec=29) at comm.c:1052
#9 0x3b04c in main (argc=1073745368, argv=0x40000dd8) at main.c:671
Если возможно, храните у себя файл coredump день или два. Часто это оказывается полезным, если мы спросим вас послать дополнительную отладочную информацию, типа содержимого некоторых переменных.
Если вы НЕ МОЖЕТЕ заставить Squid оставлять файл core для вас, то тогда может быть использован одмн из следующих подходов.
Первая альтернатива состоит в запуске Squid под контролем GDB
% gdb /path/to/squid
handle SIGPIPE pass nostop noprint
run -DNYCd3
[wait for crash]
backtrace
quit
Недостаток описанного выше в том, что это в действительности неприменимо на производственных системах, когда Squid не может автоматически рестартануть, если он упал. Хорошая новость состоит в том, что есть возможность полностью автоматизировать способ, описанный выше, чтобы получить stack trace и потом перезапустить Squid. Вот неббольшой скрипт автоматизирующий это, который должен работать:
#!/bin/sh
trap "rm -f $$.gdb" 0
cat <<EOF >$$.gdb
handle SIGPIPE pass nostop noprint
run -DNYCd3
backtrace
quit
EOF
while sleep 2; do
gdb -x $$.gdb /path/to/squid 2>&1 | tee -a squid.out
done
Другие возможности, если описанное выше не может быть сделано:
a) Собрать Squid с ключем --enable-stacktraces, если сущестсвует поддержка для вашей ОС (есть для Linux glibc на Intel и Solaris с некторыми дополнительными библиотеками..)
b) Запустить Squid при помощи "catchsegv". (Linux glibc Intel)
однако эти решения не обеспечивают такой широкой детализации как использование gdb.
