- •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.13 Каков официальный статус Squid?
- •1.14 Совместим ли Squid c проблемой 2000 ?
- •1.15 Могу ли я заплатить кому-нибудь за поддержку Squid ?
- •1.16 Создатели Squid faQrus
- •1.17 О этом документе
- •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. Память
- •8.1 Почему Squid использует так много памяти!?
- •8.2 Как мне узнать сколько памяти использует мой процесс 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 Релай почты
10.25 Я хочу видеть локальную временную зону в сообщениях о ошибке
По умолчанию Squid использует временную метку в GMT для всех генерируемых сообщений о ошибках. Это опозволяет кешу состоять в иерархии кешей из различных временных зон без риска запутаться в определении времени.
Чтобы изменить временную метку в генерируемых Squid сообщениях о ошибке, вам необходимо изменить подпись Squid. См. Пользовательские осообщения о ошибках. В подписи по умолчанию временная метка указана как %T, но если вам хочется использовать локальную временную зону во временной метке, вы можете указать взамен этого параметр %t.
11. Решение проблем
11.1 Почему я получаю ``Proxy Access Denied?''
Возможно вам необходимо установить опцию http_access, чтобы разрешить запросы в вашего IP-адреса. Загляните в секцию Контроль доступа для более детальной информации.
Если squid работает в режиме httpd-акселератора, он будет принимать принятые обычные HTTP-запросы HTTP-серверу, но это не коснется запросов прокси. Если вы хотите, чтобы также принимал запросы proxy-HTTP, вы должны воспользоваться директивой:
httpd_accel_with_proxy on
Другой причиной может быть неверно описанный вами ACL. Проверьте файлы access.log и squid.conf, чтобы найти причину.
11.2 Я не могу заставить работать local_domain.Squidкеширует объекты с моих локальных серверов.
Директива local_domain не предохраняет локальные объекты от кеширования. Она предотвращает от использования сиблинга при получении локальных объектов. Если вы хотите избежать кеширования локальных объектов, используйте конфигурационные опции cache_stoplist или http_stop (в зависимости от версии).
11.3 Я получаю Connection Refused, когда кеш пытается получить объект с братского кеша (sibling), хотя братский кеш считает, что он отдал объект моему кешу.
Если HTTP-порт указан неверно, но ICP-порт указан правильно, то вы будете посылать корректные ICP-запросы и ICP-ответы будут заставлять ваш кеш считать, что настройки верны, но доставка больших объектов будет терпеть неудачу до тех пор, пока вы не установите верное значение HTTP-порта для братского кеша в вашем файле squid.conf. Если ваш братский кеш изменил свой http_port, то подобная проблема некоторое время может у вас быть, пока вы ее не заметите.
11.4 Кончаются файловые дескрипторы.
Если вы видите сообщение о ошибке Too many open files, то скорее всего у вас закончились файловые дескрипторы. Возмозжно это вызвано тем, что Squid запущен на ОС с небольшим лимитом файловых дескрипторов. Зачастую этот лимит можно указать, перестроив ядро или при помощи других отладочных инструментов системы. Есть две причины по которым кончаются файловые дескрипторы: первая - вы возможно достигли лимита файловых дескрипторов на отдельный процесс. Вторая - вы возможно достигли системного лимита общего кол-ва файловых дескрипторов для всех процессов.
Linux
У Dancer есть страница Mini-'Adding File-descriptors-to-linux for squid' HOWTO, но эта информация специфична и предназначана для ядра Linux 2.0.36.
У Henrik есть страница How to get many filedescriptors on Linux 2.2.X.
Также вы возможно захотите взлянуть на filehandle patch от Michael O'Reilly
Если у вас ядро версии 2.2.x или более поздней, то вы можете посмотеть и изменить максимальное число поддерживаемых файлов и/или инод, просто имея доступ к специальным файлам:
/proc/sys/fs/file-max
/proc/sys/fs/inode-max
Чтобы увеличить лимит для файловых дескрипторов:
echo 3072 > /proc/sys/fs/file-max
Если у вас ядро версией между 2.0.35 и 2.1.x (?),то вы можете посмотеть и изменить максимальное число поддерживаемых файлов и/или инод, просто имея доступ к специальным файлам:
/proc/sys/kernel/file-max
/proc/sys/kernel/inode-max
Т.к. это увеличило текущее значение количества файловых дескрипторов, то Squid-овый скрипт configure скорее всего не покажет новое значение, пока вы также не обновите заголовочные файлы , указав значение OPEN_MAX в файле /usr/include/linux/limits.h.
Solaris
Чтобы увеличить максимальное количество файловых дескрипторов на процесс, добавьте следующее в ваш файл /etc/system:
set rlim_fd_max = 4096
Далее вам необходимо перезапустить скрипт configure в корневой директории, чтобы он подхватил новое значение. Если скрипт не найдет новый лимит, то вы можете попытаться установить вручную #define DEFAULT_FD_SETSIZE, отредактировав файл include/autoconf.h. Заметьте, что файл include/autoconf.h создается из autoconf.h.in каждый раз, когда вы запускаете configure. Т.е., если вы редактируете вручную, то ваши изменения могут быть впоследстии утрачены.
Если у вас очень старая версия Squid (1.1.X) и вы хотите использовать более чем 1024 файловых дексриптора, то вы должны отредактировать src/Makefile и включить $(USE_POLL_OPT). После этого перекомпилируйте squid.
Jens-S. Voeckler предупреждает, что вы НЕ должны изменять "мягкий" лимит (rlim_fd_cur) на что-нибудь большее, чем 256. Это может нарушить работу остальных программ, к примеру, менеджера лицензий для компилятора SUN. Jens-S.также говорит, что возможно не беспокоясь задрать лимит до 16,384.
IRIX
За подсказками обратитесь к документу Tuning IRIX 6.2 for a Web Server от SGI.
FreeBSD
от Torsten Sturm
Ка проверить максимальное значение для файловых дексрипторов?
Запустите sysctl -a и найдите значение переменной kern.maxfilesperproc.
Как его увеличить?
sysctl -w kern.maxfiles=XXXX
sysctl -w kern.maxfilesperproc=XXXX
Предупреждение: Вы возможно захотите сделать maxfiles > maxfilesperproc, ексли собираетесь поднть лимит.
А как насчет верхнего лимита?
Я не думаю, что есть формальный верхний предел внутри самого ядра. Все структуры данных выделяются динамически. На практике возможно мог быть случайный metaphenomena (ядро, тратящее kслишком много времени на поиск таблиц, к примеру).
General BSD
Для большинства BSD-систем (SunOS, 4.4BSD, OpenBSD, FreeBSD, NetBSD, BSD/OS, 386BSD, Ultrix) вы можете также использовать метод ``грубой силы'', что бы увеличить эти значение в ядре (требуется пересборка ядра):
Как мне проверить максимальное кол-ва файловых дескрипторов?
Выполните pstat -T и посмотрите на значение files, обычно отображается ввиде отношения current/maximum.
Как мне проще всего увеличить это значение ?
Один из способов - увеличить значение переменной maxusers в файле конфигурации вашего ядра, а затем собюрать новое ядро. Это метод быстрый легкий, но от также увеличит значение широкого спектра других переменных, которые у вас нет ни ниобходимости, ни желания увеличивать.
Есть ли более точный метод?
Другая возможность - найти файл param.c в исходниках вашего ядра и изменить арифметические зависомости между maxusers и максимальным количеством открытых файлов.
Вот несколько примеров, которые укажут вам нужное направление движения:
SunOS
Измените значение nfile в usr/kvm/sys/conf.common/param.c> поправив данную формулу:
int nfile = 16 * (NPROC + 16 + MAXUSERS) / 10 + 64;
Где NPROC поределяется как:
#define NPROC (10 + 16 * MAXUSERS)
FreeBSD (начиная 2.1.6)
Подобно SunOS, отредактируйте /usr/src/sys/conf/param.c и поправьте соотношение между переменными maxusers,maxfiles и maxfilesperproc:
int maxfiles = NPROC*2;
int maxfilesperproc = NPROC*2;
Где NPROC определяется как: #define NPROC (20 + 16 * MAXUSERS) Лимит для каждого процесса также может быть подстроен прямо в файле конфигурации ядра при помощи следующей директивы: options OPEN_MAX=128
BSD/OS (начиная с 2.1)
Отредактируйте /usr/src/sys/conf/param.c и поправьте maxfiles согласно формуле:
int maxfiles = 3 * (NPROC + MAXUSERS) + 80;
Где NPROC определяется как: #define NPROC (20 + 16 * MAXUSERS) Вы можете также установить значение OPEN_MAXв файле конфигурации вашего ядра для изменения лимита на каждый процесс.
Reconfigure afterwards
Замечание: После пересборки вашего ядра с большим количеством файловых дексрипторов, вам необходимо пересобрать Squid. Squidвый скрипт configure определяет как мноо файловых дескрипторов доступно, поэтому вы должны убедится что скрипт был запущен еще раз, к примеру:
cd squid-1.1.x
make realclean
./configure --prefix=/usr/local/squid
make
