Squid.conf (на русском) |
---|
- Перевод подготовила команда проекта http://break-people.ru
- Оригинал перевода с разбивкой по секциям - ТУТ
На данной странице помещен перевод одним текстом
# # Добро пожаловать в SQUID 2.6.STABLE21 # # Этот файл представляет собой конфигурацию Squid по умолчанию. Возможно, вам # захочется посмотреть FAQ или другую документацию. Всё это вы сможете найти на # официальной странице http://www.squid-cache.org. # # Файл squid.conf показывает значения установленные по умолчанию для некоторых # опций. Если вы не хотите изменить значение по умолчанию, вы не должны # раскомментировать строку. В некоторых случаях слово «none», означает, то что у # этой опции нет значения по умолчанию, в то время как в некоторых опциях это и # есть значение этой опции. Поэтому внимательно читайте пояснение к той или иной # опции. # Секция: Аутентификация(Authentication) # ----------------------------------------------------------------------------- # # TAG: auth_param # # Этот тэг используется для определения параметров для различных схем аутентификации # поддерживаемых Squid. # # format: auth_param scheme parameter [setting] # # Порядок в котором схемы аутентификации представляются клиенту, зависит от порядка # расположения схем в конфигурационном файле. Первая по порядку схема, будет # представлена первой. IE имеет баг, связанную с тем, что он использует basic схему # авторизации, несмотря на то, что в списке есть более безопасные схемы. Рекомендуется # использовать тот порядок схем, который установлен по умолчанию. Если другие браузеры # имеют сложности(не «понимают» предлагаемые схемы), тогда установите basic схему # аутентификации первой в списке, либо закомментируйте другие строки со схемами. # # Как только схема аутентификации полностью сконфигурирована, она вступит в силу только # после перезагрузки Squid. Изменения могут быть сделаны «на лету», но активированы при # перезагрузке. # # Запомните, установка параметров определяющих как Squid будет проводить # аутентификацию, не ведет к автоматическому использванию их. Для того, чтобы # использовать аутентификацию, вы должны добавить ACL основанный на логине(имя # пользователя). ACL должен быть вида proxy_auth, proxy_auth_regex или external с # использованием переменной %LOGIN. При запросе доступа через браузер, будет запрошена # аутентификация пользователя. При правильных логине и пароле, пользователю откроется # доступ, иначе нет. # # Важно: аутентификация не может использовать при прозрачном(transparent) # проксировании, потому что клиент «думает», что работает с Интернет напрямую, а не # через прокси. Это ограничение накладывает TCP/IP протокол, а не Squid. # # # === Опции для basic схемы аутентификации === # # "program" cmdline # # Определите программу используемую для внешней аутентификации. Эта программа # должна считывать строку содержающую "username password" и отвечать "OK" или # "ERR" в случае корректной или ошибочной аутентификации соответсвтенно. # # По умолчанию, basic схема не используется, если не указана программа аутентификации. # # Если вы хотите использовать традиционную прокси аутентификацию перейдите в # helpers/basic_auth/NCSA каталог и введите: # # % make # % make install # # Затем, введите в конфигурационный файл что-то вроде этого: # # auth_param basic program /usr/local/libexec/ncsa_auth /usr/local/etc/passwd # # "children" numberofchildren # # Число процессов программы аутентификации, которые могут быть запущены # одновременно. Если их будет слишком мало, то каждый новый клиент желающий # получить доступ, будет ожидать пока не появится свободный процесс для # аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная # сеть, возможно вы захотите увеличить число этих процессов. # # auth_param basic children 5 # # "concurrency" numberofconcurrentrequests # # Число одновременно возможных для использования запросов/каналов для # аутентификации. # # # "realm" realmstring # # Определяет строку, которая будет отправлена пользователю в окне авторизации. Как # правило, эта строка представляет собой название прокси сервера, например, # Corporate proxy server. # # auth_param basic realm Squid proxy-caching web server # # "credentialsttl" timetolive # # Определяет как долго Squid будет кэшировать пару username:password # пользователей. По истечению этого времени, Squid вновь запросит аутентификацию # пользователя. Установите это значение маленьким, чтобы проверка пользователя # проходила чаще. Заметим, использование большого значения этой опции не влияет на # восприимчивость сервера к атакам если вы используете систему одноразовых # паролей(Например, SecureID). Но также, если вы используете такую систему, то это # не означает вашу полную защищенность от атак. Вам также рекомендуется # использовать ACL вида max_user_ip в правиле http_access. # # auth_param basic credentialsttl 2 hours # # "casesensitive" on|off # # Определяет, являются ли имена пользователей(username) чуствительными к регистру. # Большинство баз данных регистронезависимы, и им нет разницы, прописные или # строчные буквы используются, но некоторые, всё же, регистрозависимы. Это имеет # большое значение для ACL вида max_user_ip. # # auth_param basic casesensitive off # # "blankpassword" on|off # # Определяет, поддерживаются ли пустые пароли. По умолчанию, это запрещено(off), # так как аутентификация с пустым паролем предусмотрена только для # гостевого("guest") входа. # # === Опции для digest схемы аутентификации === # # "program" cmdline # # Определите программу используемую для внешней аутентификации. Такая программа # считывает строку содержащую "username":"realm" и отвечает соответствующим H(A1) # значением в шестнадцатеричной системе(hex код), если данные верны или "ERR" если # пользователь (или его H(A1) хэш) не существует. См. в RFC 2616 как определяется # H(A1). # # По умолчанию, digest схема не используется, если не указана программа аутентификации. # # Если вы хотите использовать digest аутентификацию перейдите в helpers/ digest_auth/ # каталог и выберите программу, которую хотите использовать. В каталоге выбранной # программы введите: # # % make # % make install # # Затем, введите в конфигурационный файл что-то вроде этого: # # auth_param digest program /usr/local/libexec/digest_auth_pw /usr/local/etc/digpass # # "children" numberofchildren # # Число процессов программы аутентификации, которые могут быть запущены # одновременно. Если их будет слишком мало, то каждый новый клиент желающий # получить доступ, будет ожидать пока не появится свободный процесс для # аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная # сеть, возможно вы захотите увеличить число этих процессов. # # auth_param digest children 5 # # "concurrency" numberofconcurrentrequests # # Число одновременно возможных для использования запросов/каналов для # аутентификации. # # "realm" realmstring # # Определяет строку, которая будет отправлена пользователю в окне авторизации. Как # правило, эта строка представляет собой название прокси сервера, например, # Corporate proxy server. # # auth_param digest realm Squid proxy-caching web server # # "nonce_garbage_interval" timeinterval # # Опрделяет временной интервал, в течение которого будет ожидание ввода логина и # пароля от клиента. # # auth_param digest nonce_garbage_interval 5 minutes # # "nonce_max_duration" timeinterval # # Определяет максимальное время, в течение которого будет действительна # аутентификация клиента. # # auth_param digest nonce_max_duration 30 minutes # # "nonce_max_count" number # # Определяет максимальное количество попыток аутентификации. # # auth_param digest nonce_max_count 50 # # "nonce_strictness" on|off # # Определяет как будет регистрироваться корректная аутентификация клиента. Если # "on", то счетчик Squid будет увеличиваться на 1(единица). Если "off", то будет # использоваться число, которое отправит в ответ пользовательский агент(это может # быть 1,2,4,6). # # auth_param digest nonce_strictness off # # "check_nonce_count" on|off # # Определяет, ведется ли подсчет количества попыток аутентификаций клиентом. По # умолчанию выставлено значение "on" для защиты от атак связанных с подбором # аутентификационных данных. # # auth_param digest check_nonce_count on # # "post_workaround" on|off # # Эта опция есть обходной путь для некоторых браузеров, которые некорректно # работают с digest аутентификацией, посылая неправильные POST запросы. # # auth_param digest post_workaround off # # === Опции для NTLM схемы аутентификации === # # "program" cmdline # # Определите программу используемую для внешней NTLM аутентификации. Такая # программа, которая может обрабатывать передачу данных между клиентом и Squid # сервером по протоколу NTLMSSP. Смотри helpers/ntlm_auth/ для подробной # информации. Рекомендуемая программа NTLM аутентификации идет вместе с Samba-3.X, # но существуют и другие средства NTLM аутентифиации. # # По умолчанию, NTLM схема не используется, если не указана программа # аутентификации. # # Для использования NTLM аутентификации, вставьте в squid.conf, что-то вроде этого: # # auth_param ntlm program /path/to/samba/bin/ntlm_auth --helper -protocol=squid-2.5-ntlmssp # # "children" numberofchildren # # Число процессов программы аутентификации, которые могут быть запущены # одновременно. Если их будет слишком мало, то каждый новый клиент желающий # получить доступ, будет ожидать пока не появится свободный процесс для # аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная # сеть, возможно вы захотите увеличить число этих процессов. # # auth_param ntlm children 5 # # "keep_alive" on|off # # Эта опция включает использование постоянного соединения при инициализации # запроса аутентификации. Есть сведения, что некоторые версии MS IE имеют проблемы # с этим, но лучше будет если эта опция включена. # # auth_param ntlm keep_alive on # # === Negotiate scheme options follow === # # "program" cmdline # # Определите программу используемую для внешней Negotiate аутентификации. Такая # программа, которая может обрабатывать передачу данных между клиентом и Squid # сервером по протоколу SPNEGO. Смотри helpers/ntlm_auth/ для подробной # информации. Рекомендуемая программа Negotiate аутентификации идет вместе с # Samba-4.X, это SPNEGO. # # По умолчанию, NTLM схема не используется, если не указана программа аутентификации. # # Для использования NTLM аутентификации, вставьте в squid.conf, что-то вроде этого: # # auth_param negotiate program /path/to/samba/bin/ntlm_auth --helper-protocol=gss-spnego # # "children" numberofchildren # # Число процессов программы аутентификации, которые могут быть запущены # одновременно. Если их будет слишком мало, то каждый новый клиент желающий # получить доступ, будет ожидать пока не появится свободный процесс для # аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная # сеть, возможно вы захотите увеличить число этих процессов. # # auth_param negotiate children 5 # # "keep_alive" on|off # # Если у вас возникают проблемы с запросами PUT/POST, когда вы используете # Negotiate схему аутентификации, вы можете попробовать выключить эту опцию. Но # это может привести, к тому, что Squid будет закрывать соединения, если браузер # спрашивает, какие схемы аутентификации поддерживает прокси. # # auth_param negotiate keep_alive on # # Рекомендуемые параметры настройки для каждой из схем аутентификации: # #auth_param negotiate program <раскомментируйте и введите путь к программе для активации> #auth_param negotiate children 5 #auth_param negotiate keep_alive on # #auth_param ntlm program <раскомментируйте и введите путь к программе для активации> #auth_param ntlm children 5 #auth_param ntlm keep_alive on # #auth_param digest program <раскомментируйте и введите путь к программе для активации> #auth_param digest children 5 #auth_param digest realm Squid proxy-caching web server #auth_param digest nonce_garbage_interval 5 minutes #auth_param digest nonce_max_duration 30 minutes #auth_param digest nonce_max_count 50 # #auth_param basic program <раскомментируйте и введите путь к программе для активации> #auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 2 hours #auth_param basic casesensitive off # # # TAG: authenticate_cache_garbage_interval # # Этот тэг определяет время, сколько будет хранится в кэше логин пользователя. Изменять # этот тэг не рекомендуется, если у вас на это нет веских причин. # #По умолчанию: # authenticate_cache_garbage_interval 1 hour # # TAG: authenticate_ttl # # Этот тэг определяет время, сколько пользователь будет оставаться аутентифицированным, # со времени его последнего запроса. Как только пройдет это время, то все данные об # аутентификации пользователя будут стерты из памяти. # # По умолчанию: # authenticate_ttl 1 hour # # TAG: authenticate_ip_ttl # # Если вы используете прокси аутентификацию и ACL вида max_user_ip, этот тэг # определяет, как долго Squid будет помнить IP адреса ассоциированые с вошедшим # пользователем. Используйте маленькие числа(например, 60 секунд), если ваши # пользователи сменяют IP адреса быстро, как например это происходит при dial up. # Возможно, вы захотите использовать большое значение(например, 2 часа) в корпоративной # LAN, в которой настроена статическая раздача IP адресов. # # По умолчанию: # authenticate_ip_ttl 0 seconds # Секция: Контроль доступа(ACCESS CONTROLS) # ----------------------------------------------------------------------------- # # TAG: external_acl_type # # Этот тэг позволяет определить внешние ACL. Внешние ACL это такие ACL, которые не # входят в набор стандартных типов ACL. Например, это могут быть самописные(или откуда- # нибудь взятые) скрипты(вспомогательные программы), которые используя переменные Squid # осуществляют некоторое действие. Такие скрипты запускаются вместе со Squid отдельным # процессом. # # external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..] # # Опции(Options): # # ttl=n # # TTL(Time-To-Live, время жизни) в секундах для хранения результатов # отработки внешнего ACL.(По умолчанию установлено в 3600 т.е. 1 час). # # negative_ttl=n # # TTL в секундах для хранения отрицательных результатов отработки внешнего # ACL. (По умолчанию, установлено значение такое же как ttl) # # children=n # # Количество процессов, которое может быть задействовано под внешние # ACL(под скрипты, т.е.). (По умолчанию 5). # # concurrency=n # # Уровень параллельности для процесса. Используется, только со скриптами, # которые умеют обрабатывать более одного запроса одновременно. # # Примечание: Читайте ниже о совместимости # # cache=n # # Размер кэша результатов. 0(цифра ноль) - неограничено (По умолчанию, # неограничено) # # grace= # # Процент, от TTL. То есть это значение нужно устанавливать как процент от # значения TTL. Но без знака процента. Например, grace=90. Эта опция # означает количество времени, по истечению которого, произойдет обновление # кэшированных записей. Это так называемое время отсрочки.(По умолчанию # установлено 0, для отсутствия отсрочки) # # protocol=2.5 # # Режим совместимости для внешних ACL со Squid-2.5 # # Формат, т.е. переменные которые можно использовать в своей вспомогательной # программе(FORMAT). Слева, название переменной, справа - то, что в ней находится. # # %LOGIN Логин аутентифицированного пользователя # %EXT_USER Имя пользователя из внешнего acl # %IDENT Ident имя пользователя # %SRC IP-адрес клиента # %SRCPORT Порт клиента # %DST Запрошенный хост # %PROTO Протокол по которому сделан запрос # %PORT Запрошенный порт # %METHOD Метод, которым осуществлен запрос # %MYADDR IP адрес прокси сервера Squid # %MYPORT Порт прокси сервера Squid # %PATH URL путь(все символы после имени хоста) в запросе # %USER_CERT SSL пользовательский сертификат в формате PEM # %USER_CERTCHAIN SSL пользовательский сертификат сети в формате PEM # %USER_CERT_xx Имя SSL пользовательского сертификата xx # %USER_CA_xx Кем выдан SSL пользовательский сертификат xx # # %{Header} Полностью HTTP заголовок запроса # %{Hdr:member} HTTP заголовок запроса содержащий list member # %{Hdr:;member} HTTP заголовок запроса содержащий list member разделяя знаком ; # элементы списка. Разделителем можт быть любой символ псевдографики. # # %ACL Имя ACL # %DATA Аргументы ACL. Если не использовать эту переменную, то все # аргументы автоматически добавляются в конец строки. # # В дополнение к вышесказанному - каждая строка определяющая ACL, должна быть включена # в строку запроса вспомогательной программы(скрипта) (смотри директиву acl тип external). # # Скрипт получает строки с данными согласно формата(FORMAT) и возвращается строки # содержащие OK или ERR, определящие пройдена аутентификация или нет соответственно. # Опционально строка может содержать дополнительные ключевые слова(keywords). # # Синтаксис ответной строки скрипта: # # OK/ERR keyword=value ... # # Доступные ключевые слова(keywords): # # user= Пользовательские имена (логины также можно вводить) # password= Пароли пользователей (для PROXYPASS login= cache_peer) # message= Сообщение об ошибке. Оно запишется в переменную %o # log= Строка которая будет записана в access.log. Доступна # специкация %ea формата журналов. # # Если установлено protocol=3.0 (по умолчанию), тогда URL будет использоватся для # передачи значений и для запросов и для ответов. # # Если установлено protocol=2.5, тогда все значения должны быть оформлены в кавычки, # если они содержат пробелы. Кроме того, кавычки или знак \, которые находятся в # содержимом ключевого слова, должны предварятся знаком \. То есть если имя пользователя # joe "blade" smith, то запись такого имени в ключевом слове user должна выглядеть так - # user = "joe \"blade\" smith". # # Примечание: Опция children= названа concurrency= в версии Squid-2.5.STABLE3 и более # ранних. В Squid-3 опция concurrency= более не работает. Используйте children=. # #По умолчанию: # none # # TAG: acl # # Этот тэг позволяет задавать ACL. Ниже представлены типы ACL и краткие описания к # каждому из них(на что нацелены). # # acl aclname acltype string1 ... # acl aclname acltype "file" ... # # Когда используется "file", то файл должен содержать не более одного правила на строку. # # acltype - тип ACL # # По умолчанию, регулярные выражения РЕГИСТРОЗАВИСИМЫ. Для того, чтобы сделать # регулярное выражение регистронезависимым используйте опцию -i . # # acl aclname src ip-address/netmask ... # # Проверяет IP адрес клиента. # # acl aclname src addr1-addr2/netmask ... # # Проверяет диапазон IP адресов клиента. # # acl aclname dst ip-address/netmask ... # # Проверяет IP адрес URL хоста. # # acl aclname myip ip-address/netmask ... # # Проверяет локальный IP адрес. # # acl aclname arp mac-address ... # # Проверяет xx:xx:xx:xx:xx:xx MAC адрес. # # Примечание: Тип arp ACL доступен если Squid скомпилирован с опцией --enable-arp-acl # Кроме того, ACL типа arp поддерживают не все операционные системы. # Это работает на Linux, Solaris FreeBSD и некоторых других *BSD системах. # # Примечание: Squid может определить MAC адреса клиентов из одной подсети. Если же # клиенты будут из разных подсетей, тогда Squid не сможет определить MAC # адрес клиента. # # acl aclname srcdomain .foo.com ... # # Проверяет имя хоста клиента. # # acl aclname dstdomain .foo.com ... # # Проверяет имя хоста сервера назначения. # # acl aclname srcdom_regex [-i] xxx ... # # Регулярное выражение для хоста клиента # # acl aclname dstdom_regex [-i] xxx ... # # Регулярное выражение для сервера назначения # # Типы ACL dstdomain и dstdom_regex используют имена хостов. Если же URL адрес задан # через IP(например, 195.33.72.33), то будет автоматически произведена замена его на имя # хоста связанное с этим IP(например на yandex.ru), используя DNS. И к уже к найденному # имени хоста будет применен ACL. # # acl aclname time [day-abbrevs] [h1:m1-h2:m2] # # Аббревиатуры дней: # S - Воскресенье # M - Понедельник # T - Вторник # W - Среда # H - Четверг # F - Пятница # A - Суббота # h1:m1 должно быть меньше h2:m2 # # acl aclname url_regex [-i] <nowiki>^http:// ...</nowiki> # # Регулярное выражение вбирающее в себя все URL адреса. # # acl aclname urlpath_regex [-i] \.gif$ ... # # Регулярное выражение проверяющее URL путь(все, что после имени хоста в URL) # # acl aclname urllogin [-i] [^a-zA-Z0-9] ... # # Регулярное выражение проверяющее поле URL login. # # acl aclname port 80 70 21 ... # # Проверяет порт назначения # # acl aclname port 0-1024 ... # # Диапазон портов # # acl aclname myport 3128 ... # # Локальный TCP порт # # acl aclname proto HTTP FTP ... # # Проверяет протокол # # acl aclname method GET POST ... # # Проверяет метод доступа # # acl aclname browser [-i] regexp ... # # Проверяет заголовок User-Agent (смотри также req_header) # # acl aclname referer_regex [-i] regexp ... # # Проверяет заголовок Referer. Referer очень ненадежен, поэтому используйте с # осторожностью # # acl aclname ident username ... # acl aclname ident_regex [-i] pattern ... # # Проверяет выходные данные ident. # Используйте REQUIRED для принятия не пустых ident строк. # # acl aclname src_as number ... # acl aclname dst_as number ... # # # ======= осталось без перевода ================================ # # Except for access control, AS numbers can be used for # # routing of requests to specific caches. Here's an # # example for routing all requests for AS #1241 and only # # those to mycache.mydomain.net: # # acl asexample dst_as 1241 # # cache_peer_access mycache.mydomain.net allow asexample # # cache_peer_access mycache_mydomain.net deny all # # ======= осталось без перевода ================================ # # acl aclname proxy_auth [-i] username ... # acl aclname proxy_auth_regex [-i] pattern ... # # Список прокси пользователей. # # Примечание: Когда заголовок Proxy-Authentication(Прокси аутентификации) отправлен, но # не используется в ACL, то такая запись вносится в access.log # # Примечание: proxy_auth требует программу внешней(External) аутентификации для # проверки пары username/password(логин/пароль). Смотри директиву # auth_param. # # Примечание: proxy_auth не работает при прозрачном проксировании. Браузер должен быть # настроен на использование прокси, чтобы аутентификация работала. # # acl aclname snmp_community string ... # # Строка для ограничения доступа SNMP community # # Пример: # # acl snmppublic snmp_community public # # acl aclname maxconn number # # Этот ACL проверяет количество HTTP сессий клиента. И не дает открыть # ему больше чем <number> подключений # # acl aclname max_user_ip [-s] number # # Этот ACL проверяет количество различных IP адресов, с которого пользователь может # пройти аутентификацию одновременно. Директива authenticate_ip_ttl определяет время # действия аутентификации пользователя с конкретного IP адреса. По истечению этого # времени, пользователь с этого IP должен будет пройти аутентификацию вновь. # Аргумент -s означает, что при достижении числа number, будет невозможно # подключится с любого другого IP адреса, пока ttl текущей аутентификации какого- # либо IP адреса не истечет. # # Примечание: в режиме acceleration или при использовании нескольких child прокси, # клиенты могут приходить с множества IP адресов если они идут через 2-3 # прокси сервера, тогда ограничение в 1 IP адрес на клиента, может вызвать # проблемы. # # acl aclname req_mime_type mime-type1 ... # # Регулярное выражение проверяющее mime тип клиентского запроса. Может быть # использовано для определения отправки файлов или HTTP туннелирования. # # Примечание: Этот ACL не проверяет ответ от сервера на запрос клиента. # # acl aclname req_header header-name [-i] any\.regex\.here # # Регулярное выражение проверяющее заголовки запросов. Например, может # использоватся для блокирования доступа некоторых браузеров. # # acl aclname rep_mime_type mime-type1 ... # # Регулярное выражение проверяющее mime тип ответа от сервера. Может быть # использовано для определения скачивания файла или HTTP туннелирования. # # Примечание: Этот ACL не действует в правилах для http_access. Этот ACL имеет эффект в # правилах, которые работают с ответами от сервера, такими как # http_reply_access. # # acl aclname rep_header header-name [-i] any\.regex\.here # # Регулярное выражение проверяющее заголовки ответов от сервера. # # Пример: # # acl many_spaces rep_header Content-Disposition -i [[:space:]]{3,} # # acl acl_name external class_name [arguments...] # # Внешние ACL используемые вспомогательными программами(скриптами) должны быть # перед использованием описаны директивой external_acl_type. # # acl urlgroup group1 ... # # Проверяет urlgroup используемую редиректорами # # acl aclname user_cert attribute values... # # Проверяет атрибуты в пользовательском сертификате SSL. Атрибутом может быть один # из DN/C/O/CN/L/ST # # acl aclname ca_cert attribute values... # # Проверяет атрибуты выдавшего SSL сертификат. Атрибутом может быть один # из DN/C/O/CN/L/ST # # acl aclname ext_user username ... # acl aclname ext_user_regex [-i] pattern ... # # Проверяет имя пользователя, которое вернул внешний ACL скрипт. # Используйте REQUIRED, для принятия любого не пустого имени # пользователя. # #Примеры: # #acl macaddress arp 09:00:2b:23:45:67 #acl myexample dst_as 1241 #acl password proxy_auth REQUIRED #acl fileupload req_mime_type -i ^multipart/form-data$ #acl javascript rep_mime_type -i ^application/x-javascript$ # #Рекомендуемый минимум: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # # TAG: http_access # # Этот тэг разрешает или запрещает доступ основываясь на имеющихся ACL # # Использование: # # http_access allow|deny [!]aclname ... # # Примечание: Если не указано allow или deny, то по умолчанию будет принято deny. # # Последний в списке http_access является действием по умолчанию. Т.е. если не # сработало ни одно прокси ограничение из всего списка, то будет применено, то, что # установлено по умолчанию. Допустим последней строкой стоит «deny all», то это # означает, что если клиент не подходит ни под один из разрешающих ACL, то доступ ему # будет закрыт. И наоборот. Допустим последней строкой стоит «allow all», тогда если # клиент не подпадает ни под один запрещающий ACL, то доступ ему будет открыт. Исходя # из этих соображений, имеет смысл установить последней строкой ограничение «deny all» # или «allow all». # #По умолчанию: # http_access deny all # #Рекомендуемый минимум: # # Доступ только с localhost к cachemgr # Запрет доступа запросов к неизвестным портам(unknown ports) # Запрет метода CONNECT к другим потрам кроме SSL портов # # Настоятельно рекомендуется, чтобы к сервисам localhost имели только локальные # пользователи и локальные программы. Из этих соображений следует запретить # доступ к localhost службам и сервисам # #http_access deny to_localhost # # ВСТАВЛЯЙТЕ СЮДА СВОИ СОБСТВЕННЫЕ ПРАВИЛА # # Пример правила разрешающего доступ из вашей локальной сети. Вы можете адаптировать # под себя это правило, введя свои IP адреса, с которых будет предоставлятся доступ в сеть: # #acl our_networks src 192.168.1.0/24 192.168.2.0/24 #http_access allow our_networks # # И закрыть весь остальной доступ к прокси серверу. # # TAG: http_access2 # # Этот тэг разрешает или запрещает доступ на основе ACL. # # Схож с http_access, но запускается после редиректоров. Если не # используется, значит действует только http_access. # #По умолчанию: # none # # TAG: http_reply_access # # Этот тэг разрешает или запрещает ответы на запросы клиентов основываясь на # ACL. Он является дополнением к тэгу http_access. # # http_reply_access allow|deny [!] aclname ... # # Примечание: Если не указан ни один ACL, то по умолчанию, разрешен доступ # всем ответам от серверов. # # Хорошей идеей будет установить правила allow all или deny all последними в списке # правил. Потому что, именно последнее правило в списке используется как правило по # умолчанию. # #По умолчанию: # http_reply_access allow all # # TAG: icp_access # # Этот тэг разрешает или запрещеает доступ по ICP порту основываясь на ACL # # icp_access allow|deny [!]aclname ... # # Смотри http_access для подробностей # #По умолчанию: # icp_access deny all # # Разрешает ICP запросы отовсюду: # icp_access allow all # # TAG: htcp_access # # Примечание: Этот тэг доступен если Squid скомпилирован с опцией --enable-htcp # # Этот тэг разрешает или запрещает достпу по HTCP порту основываясь на ACL. # # htcp_access allow|deny [!]aclname ... # # Смотри http_access для подробностей # # Примечание: По умолчанию, запрещен весь траффик по HTCP порту. Это может # быть причиной проблем с пользователями использующих htcp или htcp-oldsquid # опции # # Разрешает HTCP запросы отовсюду # #htcp_access allow all # #По умолчанию: # htcp_access deny all # # TAG: htcp_clr_access # # Примечание: Этот тэг доступен если Squid скомпилирован с опцией --enable-htcp # # Этот тэг разрешает или запрещает доступ к функции очистки содержимого # используя HTCP основываясь на ACL. # # htcp_clr_access allow|deny [!]aclname ... # # Смотри http_access для подробностей # # Разрешает запросы HTCP CLR от доверенных пользователей # #acl htcp_clr_peer src 172.16.1.2 #htcp_clr_access allow htcp_clr_peer # #По умолчанию: # htcp_clr_access deny all # # TAG: miss_access # # Этот тэг позволяет определить, какие из ваших клиентов могут получать TCP_MISS # при обращении к вашему кэшу. TCP_MISS будет отправлятся им всякий раз, когда # объект не найден в кэше. # # Например: # # acl localclients src 172.16.0.0/16 # miss_access allow localclients # miss_access deny !localclients # # Эти строки означают, что ваши локальные клиенты могут получать MISSES(т.е. # ответы означающие, что объект не найден в кэше), а все остальные клиенты # будут получать только HITS(Т.е. что объект в кэше найден. А если объект не # найден в кэше, то не будут получать ничего). # # По умолчанию все клиенты, которые проходят по http_access правилам, могут получать # MISSES от нашего прокси сервера. # #По умолчанию: # miss_access allow all # # TAG: ident_lookup_access # # Этот тэг разрешает или запрещает доступ RFC931 пользователям основываясь # на ACL. # # Пример: # # acl ident_aware_hosts src 198.168.1.0/255.255.255.0 # ident_lookup_access allow ident_aware_hosts # ident_lookup_access deny all # # Только src тип ACL полностью поддерживается при работе с этим тэгом. Тип # src_domain ACL может иногда работать неправильно. # #По умолчанию: # ident_lookup_access deny all # # TAG: reply_body_max_size bytes allow|deny acl acl... # # Этот тэг определяет максимальный размер тела ответа в байтах. Это может быть # использовано для запрета скачивания больших файлов, таких как MP3 и фильмов. Когда # заголовки ответа получены, происходит проверка размера тела ответа. Смотрится # значение content-length(размер содержимого). Если размер содержимого больше # разрешенного размера, то запрос блокируется и пользователь получает сообщение об # ошибке - The request or reply is too large(Запрос или ответ слишком большой). Если в # ответе не указан content-length и размер ответа лимитирован, то клиент получит часть # ответа, соответствующую по размеру, установленному ограничению. # # ВНИМАНИЕ: если у вас выстроена иерархия кэшей, то могут возникнуть проблемы. Если не # указано в заголовке content-length, то в кэш попадет часть ответа. # Следовательно, если соседний прокси сделает запрос к вашему прокси на # предмет некоего запроса, который был кэширован вашим прокси частично, то # соседний прокси ответит клиенту тем, что взял у вас из кэша. Т.е. выдаст # результат частично. # # Если установлено значение в 0(по умолчанию), то максимальный размер тела ответа # неограничен. # # Примечание break-people.ru: Можно попробовать использовать этот тэг для # ограничения максимального размера тела запроса # для определенных IP адресов или группы IP # адресов используя ACL. # #По умолчанию: # reply_body_max_size 0 allow all # Секция: X-Forwarded-For # ----------------------------------------------------------------------------- # # TAG: follow_x_forwarded_for # # Примечание: Этот тэг доступен только, если Squid скомилирован с опцией # -DFOLLOW_X_FORWARDED_FOR option # # Этот тэг разрешает или запрещает заголовки X-Forwarded-For в исходном запросе. # # Запросы могут пройти цепочку прокси серверов, прежде чем дойдут до нашего. Заголовок # X-Forwarded-For содержит список IP адресов серверов этой цепи, разделенных точкой с # запятой. # # Если запрос пришел к нам, с некоторого хоста, мы будем смотреть заголовок # X-Forwarded-For, чтобы узнать с какого хоста пришел запрос. Если заголовок # X-Forwarded-For содержит несколько IP адресов и опция acl_uses_indirect_client # включена, мы будем идти по этому списку снизу вверх до тех пор, пока не дойдем до # адреса на котором запрещен заголовок X-Forwarded-For, либо до первого адреса в # списке(в этом случае, первым в списке будет адрес с которого был отправлен запрос). # Если опция acl_uses_indirect_client выключена, то пройти по списку IP адресов # заголовка, можно не более чем на один уровень. # # Конечным результатом, будет IP адрес, который косвенно может считатся адресом # клиента. Этот адрес может рассматриватся как Client Address(Адрес клиента) при # использовании ACL, Delay pools и ведении журнала, на основе опций # acl_uses_indirect_client, delay_pool_uses_indirect_client, log_uses_indirect_client. # # СООБРАЖЕНИЯ БЕЗОПАСНОСТИ: # # Любой хост может записать некорректную информацию в заголовок X-Forwarded-For и # Squid воспользуется этой ложной информацией при определении источника запроса. Это # может привести к неправильной работе прокси ограничений на основе Client # Source(Адрес клиента, Client Address) ACL. # # Например: # # acl localhost src 127.0.0.1 # acl my_other_proxy srcdomain .proxy.example.com # follow_x_forwarded_for allow localhost # follow_x_forwarded_for allow my_other_proxy # #По умолчанию: # follow_x_forwarded_for deny all # # TAG: acl_uses_indirect_client on|off # # Примечание: Этот тэг доступен только, если Squid скомилирован с опцией # -DFOLLOW_X_FORWARDED_FOR # # Этот тэг определяет, может ли использоватся косвенный адрес клиента как настоящий # адрес клиента в ACL. # #По умолчанию: # acl_uses_indirect_client on # # TAG: delay_pool_uses_indirect_client on|off # # Примечание: Этот тэг доступен только, если Squid скомилирован с опцией # -DFOLLOW_X_FORWARDED_FOR # # Этот тэг определяет, может ли использоватся косвенный адрес клиента как настоящий # адрес клиента в delay pools. # # По умолчанию: # delay_pool_uses_indirect_client on # # TAG: log_uses_indirect_client on|off # # Примечание: Этот тэг доступен только, если Squid скомилирован с опцией # -DFOLLOW_X_FORWARDED_FOR option # # Этот тэг определяет, может ли использоватся косвенный адрес клиента как настоящий # адрес клиента при ведении журнала доступа access.log. # # По умолчанию: # log_uses_indirect_client on # # Секция: NETWORK # ----------------------------------------------------------------------------- # # TAG: http_port # # Применение: port [options] # hostname:port [options] # 1.2.3.4:port [options] # # Этот тэг устанавливает порт на котором, Squid будет слушать HTTP запросы клиента. Вы # можете указать несколько портов, адресов + портов. Три варианта ввода данных, для # этого тэга: только порт, hostname с портом и IP адрес с портом. Если вы определите # hostname или IP адрес, то Squid будет слушать порт на этом hostname или адресе. Это # заменяет старую опцию 'tcp_incoming_address'. В большинстве случаев, вам нет # необходимости указывать адрес, достатчно указать только порт. # # Если Squid запущен в режиме accelerator, то возможно вы захотите настроить Squid # слушать также 80 порт. # # Вы можете настроить Squid на прослушивание нескольких адресов/портов и адресов, # распологая все их по одному на строку. # # Опции: # # transparent # # Поддержка прозрачного проксирования. # # tproxy # # Поддержка Linux TPROXY для подмены исходящих соединений используя клиентский # IP адрес. # # accel # # Режим Accelerator. Требуется хотя бы один vhost/vport/defaultsite. Этот режим # позволяет Squid слушать 80 порт, при том, что на нем уже висит сервер Apache. # При этом, получается - используя Squid можно заходить на внутренние ресурсы # локальной сети, не выходя в Интернет, т.е. не через внешку заходить к себе # же. Для этого и нужно указать хоть один виртуальный сервер по умолчанию. # # defaultsite=domainname # # Сайт по умолчанию для accelerator. Используется для accel. # # vhost # # Хост(IP адрес) виртуального сервера. Используется для accel. # # vport # # Порт виртуального сервера. Используется для accel. # # vport=NN # # Порт виртуального сервера. Только если этот порт отличен от того, что внесен # в http_port. Используется для accel. # # urlgroup= # # Urlgroup по умолчанию, для маркировки запросов. Смотри также acl urlgroup и # url_rewrite_program. # # protocol= # # Протокол используемый Accelerator. По умолчанию - http. # # no-connection-auth # # Оставливает форвардинг Microsoft подключения, использующие # аутентификацию(NTLM, Negotiate и Kerberos) # # Если у вас сервер с двумя сетевыми интерфейсами, мы рекомендуем указать через # http_port, внутренний интерейс(IP адрес:порт). Это сделает видимым Squid только для # внутренних адресов. # # Squid обычно слушает порт 3128 http_port 3128 # # TAG: https_port # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Применение: [ip:]port cert=certificate.pem [key=key.pem] [options...] # # Этот тэг позволяет задать адрес и порт на котором Squid будет слушать запросы # клиентов по HTTPS. # # Это полезно только в ситуациях, когда Squid запущен в режиме Accelerator и # вы хотите, чтобы и SSL работал через Accelerator. # # Вы можете указать несколько портов/адресов и портов, по одному на строку. # Каждая строка содержала бы порт или пару - адрес:порт, свой собственный # SSL сертификат и/или опции.. # # Опции: # # defaultsite=domainname # # Сайт по умолчанию для accelerator. Используется для accel. # # vhost # # Хост(IP адрес) виртуального сервера. Используется для accel. # # urlgroup= # # Urlgroup по умолчанию, для маркировки запросов. Смотри также acl urlgroup и # url_rewrite_program. # # protocol= # # Протокол используемый Accelerator. По умолчанию - https. # # cert= # # Путь к SSL сертификату (PEM формат). # # key= # # Путь к SSL файлу частного ключа (PEM формат). Если нет отдельного файла # ключа, тогда файл сертификата должен иметь и то и другое в себе. # # version= # # Поддерживаемые опции SSL/TLS # # 1 automatic (по умолчанию) Автоматически # 2 SSLv2 only Только SSLv2 # 3 SSLv3 only Только SSLv3 # 4 TLSv1 only Только TLSv1 # # cipher= # # Список поддерживаемых шифров, разделенных двоеточием. # # options= # # Различные SSL опции. Самые важные из них: # # NO_SSLv2 Запрещает использовать SSLv2 # NO_SSLv3 Запрещает использовать SSLv3 # NO_TLSv1 Запрещает использовать TLSv1 # SINGLE_DH_USE Всегда создает новый ключ, если использует # временный DH ключ. Смотри src/ssl_support.c # или OpenSSL SSL_CTX_set_options документацию. # Там есть полный список SSL опций. # # clientca= # # Файл содержащий список используемых CA, когда клиент запрашивает сертификат. # # cafile= # # Файл содержащий дополнительные CA сертификаты для верификации клиента. Если # пусто, то используется clientca. # # capath= # # Каталог содержащие дополнительные CA сертификаты и списки CRL используемые # для верификации клиента. # # crlfile= # # Файл дополнительных списков CRL используемых для верификации клиента. # Требует установки флага VERIFY_CRL. # # dhparams= # # Файл содержащий DH параметры для временных DH ключей. # # sslflags= # # Различные флаги SSL: # # DELAYED_AUTH # # Не запрашивает клиентский сертификат немедленно, а ждет, # пока ACL запросит его. # # NO_DEFAULT_CA # # Не использовать списки CA по умолчанию, встроенные в OpenSSL. # # NO_SESSION_REUSE # # Запрещает переиспользование сессии. Каждое подключение # открывает новую SSL сессию. # # VERIFY_CRL # # Проверять CRL списки когда приняты клиентские сертификаты. # # VERIFY_CRL_ALL # # Проверять CRL списки для всех сертификатов в цепочке # клиентского сертификата. # # sslcontext= # # ID контекстный идентификатор SSL. # # vport # # Порт виртуального сервера. Используется для accel. # # vport=NN # # Порт виртуального сервера. Только если этот порт отличен # от того, что внесен в https_port. Используется для accel. # #По умолчанию: # none # # TAG: tcp_outgoing_tos # # Этот тэг позволяет вам выбрать значение TOS/Diffserv для маркировки # исходящих соединений, открытых на основе username(имя пользователя) или IP # адреса. # # tcp_outgoing_tos ds-field [!]aclname ... # # Пример, где normal_service_net используют TOS значение 0x00 # и good_service_net используют 0x20 # # acl normal_service_net src 10.0.0.0/255.255.255.0 # acl good_service_net src 10.0.1.0/255.255.255.0 # tcp_outgoing_tos 0x00 normal_service_net # tcp_outgoing_tos 0x20 good_service_net # # TOS/DSCP значения, являются локальной подписью - поэтому вы должны знать, # что вы делаете. Для более подробной информации смотри RFC2474 и RFC3260 # # TOS/DSCP устанавливается в байтах.Поэтому это должно быть число из # диапазона 0-255 или введите значение "default", чтобы использовать # значения по умолчанию. На практике используются значения в диапазоне 0-63. # Для более подробной информации смотри RFC3168. # # Примечание: Использование этого тэга с применением ACL невозможно, если # сервер использует persistent(нет нормального, понятного, # русского аналога) соединения. Для того, чтобы быть увереным в # правильной работе этого тэга, вам следует установить значение # тэга server_persistent_connections в off. # #По умолчанию: # none # # TAG: tcp_outgoing_address # # Этот тэг позволяет вам настроить форвардинг запросов на различные IP # адреса(через различные сетевые интерфейсы), используя ACL. # # tcp_outgoing_address ipaddr [[!]aclname] ... # # Пример, где запросы от 10.0.0.0/24 будут отправлены через интерфейс 10.1.0.1 ; # Запросы от 10.0.1.0/24 и 10.0.2.0/24 будут отправлены с интерфейса 10.1.0.2 ; # А остальные запросы пойдут с 10.1.0.3 . # # acl normal_service_net src 10.0.0.0/24 # acl good_service_net src 10.0.1.0/24 10.0.2.0/24 # tcp_outgoing_address 10.1.0.1 normal_service_net # tcp_outgoing_address 10.1.0.2 good_service_net # tcp_outgoing_address 10.1.0.3 # # Примечание: Использование этого тэга с применением ACL невозможно, если # сервер использует persistent(нет нормального, понятного, # русского аналога) соединения. Для того, чтобы быть увереным в # правильной работе этого тэга, вам следует установить значение # тэга server_persistent_connections в off. # #По умолчанию: # none # # Секция: SSL # # ----------------------------------------------------------------------------- # # TAG: ssl_unclean_shutdown # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет разрешить или запретить некорректное завершение SSL сессий. # Некоторые браузеры(особенно MSIE) имеют проблемы с завершением сессий SSL # #По умолчанию: # ssl_unclean_shutdown off # # TAG: ssl_engine # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет выбрать SSL движок для использования. Например, OpenSSL. # #По умолчанию: # none # # TAG: sslproxy_client_certificate # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет задать SSL сертификат клиента используемый при # проксировании https:// URL # #По умолчанию: # none # # TAG: sslproxy_client_key # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет задать SSL ключ клиента используемый при проксировании # https:// URL # #По умолчанию: # none # # TAG: sslproxy_version # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет задать версию SSL используемую при проксировании # https:// URL # #По умолчанию: # sslproxy_version 1 # # TAG: sslproxy_options # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет задавать опции для SSL движка при проксировании https:// URL # #По умолчанию: # none # # TAG: sslproxy_cipher # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет задать список SSL шифров при проксировании https:// URL # #По умолчанию: # none # # TAG: sslproxy_cafile # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Файл содержащий CA сертификаты для проверки сертификатов сервера при проксировании # https:// URL # #По умолчанию: # none # # TAG: sslproxy_capath # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Каталог содержащий CA сертификаты используемые для проверки сертификатов # серверов при проксировании https:// URL # #По умолчанию: # none # # TAG: sslproxy_flags # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет установить различные флаги использования SSL при # проксировании https:// URL: # # DONT_VERIFY_PEER Принимать сертификаты даже, если они не прошли проверку. # # NO_DEFAULT_CA Не использовать список CA OpenSSL, по умолчанию. # #По умолчанию: # none # # TAG: sslpassword_program # # Примечание: Этот тэг доступен только если Squid скомпилирован с опцией --enable-ssl # # Этот тэг позволяет определить программу которая будет использоватся для ввода SSL # ключа в шифрованном виде. Если не выбрана такая программа, то ключи будут # передаваться в незашифрованном виде. # #По умолчанию: # none # # Секция: Другие прокси(NEIGHBOR SELECTION ALGORITHM) # ----------------------------------------------------------------------------- # # TAG: cache_peer # # Этот тэг позволяет определить другие кэши. Формат записи тэга: # # cache_peer hostname type http-port icp-port [options] # # Например, # # прокси icp # имя хоста тип порт порт опции # -------------------- -------- ----- ----- ----------- # cache_peer parent.foo.net parent 3128 3130 proxy-only default # cache_peer sib1.foo.net sibling 3128 3130 proxy-only # cache_peer sib2.foo.net sibling 3128 3130 proxy-only # # тип: один из 'parent', 'sibling', или 'multicast'. # # proxy-port: номер порта на котором прокси будет слушать запросы клиентов. # # icp-port: номер порта на котором прокси будет слушать ICP запросы от других прокси. # # Опции: proxy-only #подробное описание опций смотри ниже # weight=n # ttl=n # no-query # default # round-robin # carp # multicast-responder # closest-only # no-digest # no-netdb-exchange # no-delay # login=user:password | PASS | *:password # connect-timeout=nn # digest-url=url # allow-miss # max-conn=n # htcp # htcp-oldsquid # originserver # userhash # sourcehash # name=xxx # monitorurl=url # monitorsize=sizespec # monitorinterval=seconds # monitortimeout=seconds # forceddomain=name # ssl # sslcert=/path/to/ssl/certificate # sslkey=/path/to/ssl/key # sslversion=1|2|3|4 # sslcipher=... # ssloptions=... # front-end-https[=on|auto] # connection-auth[=on|off|auto] # # 'proxy-only' # # определяет, что объекты, которые берутся из этого кэша, не будут сохранятся # локально. # # 'weight=n' # # позволяет установить приоритет использования прокси при прочих равных # условиях(например, при использовании sibling(равных) прокси). Не имеет # эффекта при отношениях parent-sibling. Опция может принимать любое число # начиная с 1. По умолчанию, ставится 1. # # 'ttl=n' # # позволяет определить TTL(Time-To-Live) в ICP пакетах при использовании # multicast. Полезно только в случае рассылки запросов к к группе multicast. # Поскольку, мы не принимаем ICP ответы от случайных хостов, вы должны # настроить остальные прокси группы (multicast группы) используя опцию # 'multicast-responder'. # # 'no-query' # # используется для запрета отправки ICP запросов к этому соседскому прокси. # Только принимать их. # # 'default' # # использовать этот прокси по умолчанию. # # 'round-robin' # # для определения множества родительских кэшей, которые будут использоватся по # очереди. # # 'carp' # # для определения множества родительских кэшей, которые будут использваться в # массиве CARP. CARP представляет собой механизм для распределения нагрузки # между родительскими прокси согласно их приоритету(weight). # # 'multicast-responder' # # определяет принадлежность этого прокси к группе multicast. # # 'closest-only' # # определяет, что при ответах ICP_OP_MISS, мы будем отправлять ответ # CLOSEST_PARENT_MISS и никогда FIRST_PARENT_MISS. # # 'no-digest' # # определяет, что от этого прокси не запрашивать cache digest. # # 'no-netdb-exchange' # # отключает запросы к ICMP RTT базе данных (NetDB) от соседского прокси. # # 'no-delay' # # используется для запрета доступа к этому соседскому прокси при перезагрузке # delay pools. # # 'login=user:password' # # используется если ваш родительский прокси требует аутентификации. # # Примечание: Строка может содержать URL символы-исключения. (например, %20 # для обозначения пробела) Этот также значит, что для использования знака % # нужно писать %%. # # 'login=PASS' # # используется если пользователи должны пройти аутентификацию. # # Примечание: Для комбинирования этой опции с локальной аутентификацией, # необходимо использовать Basic схему и оба сервера должны иметь одинаковую # базу данных пользователей. Такой подход позволяет авторизоваться один раз, # вместо двух(один раз на прокси, второй раз на самом сервере). Используйте с # осторожностью. # # 'login=*:password' # # используйте для аутентификации пользователей с разными именами, но одним и # тем же паролем. Это может быть необходимо для организации доступа # пользователям из другого домена. При этом необходимо идентифицировать # пользователей. Значок *(звездочка) может использоваться дополнительно. # Например, для добавления некоторой информации, которая будет добавлятся к # username. # # 'connect-timeout=nn' # # используется для определения таймаута соединения(также смотри # peer_connect_timeout). # # 'digest-url=url' # # сообщает Squid взять cache_digest(если digest включен) для этого хоста, с # некоторого URL, вместо его обычного расположения. # # 'allow-miss' # # сообщает Squid, принимать TCP_MISS(отсутсвие в кэше) от sibling(равных, # братских) кэшей. # # 'max-conn=n' # # используется для ограничения количества подключений Squid которые могут быть # открыты к этому кэшу. # # 'htcp' # # определяет использование HTCP вместо ICP запросов к соседскому кэшу. Тогда # вы должны разрешить Squid использование htcp_access. # # 'htcp-oldsquid' # # определяет использование HTCP для старых версий Squid. Тогда вы должны # разрешить Squid использование htcp_access. # # 'originserver' # # определяет, что этот родительский прокси используется для выхода в Интернет. # # 'userhash' # # используется для баланса нагрузки множества родительских прокси. Правила для # баланса основываются на клиентском proxy_auth или ident username. # # 'sourcehash' # # используется для баланса нагрузки множества родительских прокси. Правила для # баланса основываются на IP адресе клиента. # # 'name=xxx' # # используется если у вас несколько прокси на одном хосте, но на разных # портах. Это имя может быть использовано в cache_peer_access и схожих # директивах. # # 'monitorurl=url' # # используется для мониторинга состояния соседского прокси. Действует # следующим образом: посылает запрос на заданный URL и ждет ответа. Если ответ # пришел - прокси "жив", иначе - нет. По умолчанию, none. # # 'monitorsize=min[-max]' # # используется для ограничения размера тела ответа полученного от monitorurl. # По умолчанию - 0(без ограничения на размер). # # 'monitorinterval=seconds' # # используется для установки частоты мониторинга. По умолчанию 300 секунд. # Если установить значение 0, то мониторинг будет выключен. # # 'monitortimeout=seconds' # # используется для установки таймаута 'monitorurl'. По умолчанию, равно # значению 'monitorinterval'. # # 'forceddomain=name' # # используется для принудительной вставки Host заголовка в запросы # направленные к этому прокси. Полезно, если Squid в режиме accelerator. # # 'ssl' # # определяет то, что подключения к этому прокси должны быть шифрованы по # SSL/TLS. # # 'sslcert=/path/to/ssl/certificate' # # определяет клиентский SSL сертификат, который необходимо использовать при # подключении к этому прокси. # # 'sslkey=/path/to/ssl/key' # # определяет частный SSL ключ для sslcert. Если 'sslkey' не установлен, тогда # файл, указанный в sslcert должен содержать и ключ и сертификат. # # используйте sslversion=1|2|3|4 для определения версии SSL протокола: # # 1 = automatic (по умолчанию) # 2 = SSL v2 only # 3 = SSL v3 only # 4 = TLS v1 only # # 'sslcipher=...' # # определяет список корректных SSL шифров, используемых для подключения к # этому прокси. # # 'ssloptions=...' # # определяет используемый SSL движок: # # NO_SSLv2 Запрещает использовать SSLv2 # NO_SSLv3 Запрещает использовать SSLv3 # NO_TLSv1 Запрещает использовать TLSv1 # # Смотри src/ssl_support.c или документацию по OpenSSL для более # подробной информации. # # 'sslcafile=...' # # используется для определения файла содержащего CA сертификаты. # # 'sslcapath=...' # # определяет каталог, который содержит CA сертификаты. # # 'sslcrlfile=...' # # определяет список аннулированных сертификатов. # # 'sslflags=...' # # определяет различные флаги SSL: # # DONT_VERIFY_PEER # # Принимать сертификаты, даже если они не проверены. # # NO_DEFAULT_CA # # Не использовать список CA по умолчанию, встроенный в # OpenSSL. # # 'ssldomain=' # # используется для указания имени прокси в сертификате. Необходимо для # проверки на корректность полученного сертификата. Если не указано, то # используется hostname прокси. # # 'front-end-https' # # используется для включения заголовка "Front-End-Https: On" необходимый при # использовании Squid как SSL представителя(фронтенда) в Microsoft OWA. # Смотри MS KB документ Q307347 для подробностей об этом заголовке. # # 'connection-auth=off' # # сообщает Squid, что этот прокси не поддерживает Microsoft ориентированные # подключения для аутентификации. По умолчанию, auto, для автоматического # определения статуса прокси. # #По умолчанию: # none # # TAG: cache_peer_domain # # Этот тэг используется для указания доменов, обращение к которым(к доменам), порождает # соединение, проходящее через соседский прокси. Это формулировка немного замысловатая, # смотрите пример ниже и пояснение к нему. # # Использование: # # cache_peer_domain cache-host domain [domain ...] # cache_peer_domain cache-host !domain # # Например, # # cache_peer_domain parent.foo.net .edu # # Этот пример означает, что UDP пакеты будут отправлятся к прокси серверу # parent.foo.net только тогда, когда запрошенный объект распологается в .edu # зоне(домене). А если будет перед доменом будет стоять знако "!", то это # будет означать, что запрос к parent.foo.net будет направлен только тогда, # когда объект НЕ находится в .edu зоне(домене). # # Примечание: * Тэг cache_peer_domain используется по принципу - один тэг = # один домен. Следующий домен должен быть оформлен тэгом на # следующей строке. # * Когда используется много доменов, то применяется первый # совпавший. Совпадения идут сверху вниз. # * Кэш хосты не имеющие ограничений по домену, открыты всем # доменам. # * Здесь нет значений по умолчанию. # * То же самое можно настроить через cache_peer_access, с # использованием ACL. # #По умолчанию: # none # # TAG: cache_peer_access # # Этот тэг схож с 'cache_peer_domain', но более гибок за счет использования # ACL. # # cache_peer_access cache-host allow|deny [!]aclname ... # # Синтаксис использования подобен http_access. Смотри комментарии к # http_access или в Squid FAQ (http://www.squid-cache.org/FAQ/FAQ-10.html). # #По умолчанию: # none # # TAG: neighbor_type_domain # # Использование: # # neighbor_type_domain neighbor parent|sibling domain domain ... # # Этот тэг позволяет изменять тип соседского прокси для некоторых доменов. # Настроив значения по умолчанию через директиву cache_peer, вы можете # указать домены для которых тип соседского прокси будет иным. # #Например: # cache_peer cache.foo.org parent 3128 3130 # neighbor_type_domain cache.foo.org sibling .com .net # neighbor_type_domain cache.foo.org sibling .au .de # #По умолчанию: # none # # TAG: dead_peer_timeout (в секундах) # # Этот тэг определяет как долго Squid будет ожидать, прежде чем определит # прокси "мертвым". "Мертвый" означает, что прокси не отвечает на ICP # запросы некоторое время. Вот это некоторое время и позволяет задать этот # тэг. По истечению установленного времени, если соседский прокси не # отвечает, Squid определит его "мертвым". Однако, Squid будет продолжать # направлять к нему ICP запросы. И при первом же ответе, определит соседский # прокси как "живой". # #По умолчанию: # dead_peer_timeout 10 seconds # # TAG: hierarchy_stoplist # # Этот тэг задает список слов, которые при нахождении их(этих слов) в URL, # сообщают Squid то, что объект расположенный по этому URL надо брать # напрямую, а не из кэша. Другими словами, используйте этот тэг, для # некоторых объектов, которые вы не хотите брать из соседских кэшей. # # Примечание: директива never_direct перекрывает эту опцию. # # Мы рекомендуем использовать эту строку: hierarchy_stoplist cgi-bin ? # # Секция: MEMORY CACHE # ----------------------------------------------------------------------------- # # TAG: cache_mem (в байтах) # # ПРИМЕЧАНИЕ: ЭТОТ ПАРАМЕТР НЕ УСТАНАВЛИВАЕТ МАКСИМАЛЬНЫЙ РАЗМЕР ПРОЦЕССА. # ОН ЛИШЬ ОПРЕДЕЛЯЕТ, СКОЛЬКО ДОПОЛНИТЕЛЬНОЙ ПАМЯТИ SQUID МОЖЕТ # ИСПОЛЬЗОВАТЬ ДЛЯ КЭШИРОВАНИЯ ОБЪЕКТОВ. SQUID ИСПОЛЬЗУЕТ ПАМЯТЬ И ДЛЯ # ДРУГИХ ЦЕЛЕЙ. СМОТРИ SQUID FAQ СЕКЦИЮ 8 ДЛЯ ПОДРОБНОСТЕЙ. # # 'cache_mem' этот тэг определяет количество памяти для использования под: # # * In-Transit objects (Транзитные объекты) # * Hot Objects ("Горячие" объекты, т.е. часто запрашиваемые) # * Negative-Cached objects # # Данные для этих объектов содержатся в блоках по 4 Кб. Этот параметр # определяет общий размер памяти разбитого на блоки по 4 Кб. In-Transit # объекты имеют наивысший приоритет. # # In-transit объекты имеют преимущество перед другими, когда дополнительное # пространство необходимо для входящих данных, negative-cached и # hot("горячих") объектов. Другими словами, negative-cached и hot объекты # заполняют любое простанство незанятое под in-transit объекты. # # Если того потребуют обстоятельства, этот лимит может быть превышен. # Например, если ваш входящий запрос требует более чем 'cache_mem' памяти # для in-transit объектов, Squid превысит установленный лимит памяти, для # обработки новых запросов. # #По умолчанию: # cache_mem 8 MB # # TAG: maximum_object_size_in_memory (в байтах) # # Этот тэг задает размер объекта который может хранится в памяти. Объекты # больше этого размера, сохранятся в памяти не будут. Объекты из памяти # достаются быстрее, поэтому там должны содержатся только объекты, которые # часто запрашиваются клиентами. Увеличение значения этого тэга приводит к # снижению производительности сервера. # #По умолчанию: # maximum_object_size_in_memory 8 KB # # TAG: memory_replacement_policy # # Этот тэг определяет какие объекты будут удалятся из памяти, когда # потребуется свободное место под новые объекты. # # Смотри cache_replacement_policy для подробностей. # #По умолчанию: # memory_replacement_policy lru # # Секция: DISK CACHE # ----------------------------------------------------------------------------- # # TAG: cache_replacement_policy # # Этот тэг определяет политику удаления (замены) объектов из кэша, когда # потребуется место под новые объекты. # # lru: # # Политика Squid по умолчанию, основанная на сохранении часто запрашиваемых объектов. # # heap GDSF: # # Политика основанная на сохранении небольших по размеру, популярных объектов. # # heap LFUDA: # # Политика основанная на сохранении популярных объектов вне зависимости от их # размера. # # heap LRU: # # Совместная политика LRU и heap. # # Применяется к любому тэгу cache_dir. # # ПРИМЕЧАНИЕ: если используется политика LFUDA, вам необходимо увеличить # значение тэга maximum_object_size, который по умолчанию равен # 4096 Кб, для максимального значения потенциального объекта в # кэше. # # Для более подробной информации о GDSF и LFUDA политиках смотри # http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html и # http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html. # #По умолчанию: # cache_replacement_policy lru # # TAG: cache_dir # # Использование: # # cache_dir Type Directory-Name Fs-specific-data [options] # # Вы можете определить несколько cache_dir для распределения кэша на # различных партициях жесткого диска. # # Параметр Type определяет, какой используется тип файловой системы. Только # "ufs" тип доступен по умолчанию. Для включения дополнительных типов, смотри # опцию -enable-storeio при компиляции. # # 'Directory' # # директория, где будет распологатся кэш. Если вы хотите использовать весь диск для # размещения кэша, то просто укажите точку монтирования диска. Директория должна # существовать и быть открыта для записи процессом Squid. # Squid НЕ СОЗДАСТ эту директорию за вас. # # Тип ufs: # # "ufs" это старый, хорошо знакомый формат для Squid. # # cache_dir ufs Directory-Name Mbytes L1 L2 [options] # # 'Mbytes' # # это количество дискового пространства в мегабайтах(MB), которое может быть # задействовано в этой директории. По умолчанию, 100 Мб. Измените это в соответствии # со своими потребностями. НЕ устанавливайте этот параметр в значение размера всего # вашего свободного пространства. Вместо этого, если вы хотите, чтобы Squid # использовал всё дисковое пространство, установите этот параметр в значение 80% от # всего свободного пространства. # # 'Level-1' # # это количество каталогов первого уровня, которые будут созданы в директории, # определенной в опцией 'Directory'. По умолчанию, 16. # # 'Level-2' # # это количество каталогов второго уровня, которые будут созданы в каждой директории # первого уровня. По умолчанию, 256. # # Тип aufs: # # "aufs" является схожим с "ufs" форматом, использующий POSIX-потоки для # записи данных на диск. # # cache_dir aufs Directory-Name Mbytes L1 L2 [options] # # Смотри описание аргументов, используемых в "ufs" # # Тип diskd: # # "diskd" является схожим форматом с "ufs", используя раздельные процессы # для записи данных на диск. # # cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n] # # Смотри описание аргументов, используемых в "ufs" # # Параметр Q1 определяет количество неподтвержденных I/O запросов, после # которого Squid перестает открывать новые файлы. Если этих запросов будет # много, то Squid перестанет открывать новые файлы для чтения ещё. По # умолчанию, 64. # # Параметр Q2 определяет количество неподтвержденных сообщений, после # которого Squid начинает блокировку записи на диск. Если этих сообщений # будет много, то Squid будет блокировать запись, пока не получит хотя бы # несколько ответов. По умолчанию, 72. # # Когда Q1 < Q2 (по умолчаню), кэш директория оптимизирована под малое время # для ответа на запрос, ценой уменьшения количества попаданий(TCP_HIT). Если # Q1 > Q2, кэш директория оптимизрована на увеличение количества # попаданий(TCP_HIT), ценой увеличения время для ответа на запрос. # # Примечание break-people.ru: # Для тех кто не понял предпоследние два абзаца, объясняем другими словами. # При работе с кэшем, Squid осуществляет два основных действия: запись в кэш # и выборка из кэша. Эти действия Squid производит с диском, соответственно # вызывая команды на запись/чтение диска. Так вот, если Squid начинает # слишком быстро записывать файлы в кэш директорию, может случится сбой # системы, в связи с тем, что диск не успевает обрабатывать все запросы # Squid корректно. Поэтому Squid прежде чем записать, файл спрашивает # систему - можно ли записать в систему файл? Если система отвечает # положительно, то Squid записывает файл, если ответ отрицательный, то # незаписывает. А вот если ответа вообще не было, то здесь # уже могут начатся проблемы. При отсутствии ответа от системы, Squid # начинает считать количество "неответов". Контролирует это число параметры # Q1 и Q2, с той лишь разницей, что при превышении Q1 отвечает за работу с # уже существующими файлами кэша, а Q2 - за запись на диск новых файлов в # кэш. А дальше описано понятно. # # Тип coss: # # block-size=n # # опредеяет "block size" для COSS 'cache_dir'. Squid использует номера файлов как # номера блоков. Т.к. номера файлов ограничены до 24 битов, размер блока определяет # максимальный размер COSS раздела. По умолчанию, 512 байтов, что определяет # максимальный размер cache_dir 8 Гб. # # Примечание: нельзя менять размер 'block-size', после того как Squid записал # первые объекты в 'cache_dir'. # # overwrite-percent=n # # определяет процент дискового пространства, который будет использоватся COSS для # записи объектов, прежде чем они(объекты) в текущую полосу. Установление значения # "n" близкого к 100, может стать причиной того, что COSS будет содержать много # копий одного и того же объекта. По умолчанию 50. # # max-stripe-waste=n # # определяет максимальный размер дискового пространства отведенный под COSS полосу. # # membufs=n # # определяет количество "memory-only" полос используемых COSS. # # maxfullbufs=n # # определяет максимальное количество полос COSS, стоящих в очереди перед их # освобождением(очищением). # # Тип null: # # Нет обязательных или рекомендательных опций # # Общие опции: # # read-only, не записывать новые объекты в cache_dir # # min-size=n, # # минимальный размер объекта для этой cache_dir. Можно использовать, для определения # этой cache_dir только под большие объекты, в то время как остальные cache_dir # определить под маленькие. По умолчанию, 0. # # max-size=n, # # максимальный размер объекта для этой cache_dir. # # Примечание: для оптимального использования, вы должны расположить список # cache_dir таким образом, что первыми будут идти директории с # наименьшим значением max-size, а последующие cache_dir идут по # нарастанию max-size. Директории не имеющие опции max-size, # теоретически не имеют предела на размер объекта кэша. # # Примечание: для COSS, max-size должно быть менее COSS_MEMBUD_SZ(Жестко # установлено в 1 Мб). # # Примечание для пользователей FreeBSD: # COSS -- как и aufs -- использует асинхронный IO, поэтому если вы # скомпилируете Squid без поддержки aufs, COSS будет использовать POSIX AIO. # Это означает, что вам необходимо добавить строку: # # options VFS_AIO # # в вашу конфигурацию ядра, для использования COSS. # # На FreeBSD 5 и выше вы можете запустить модуль aio(4) и не пересобирать # ваше ядро. # # Если вы скомпилировали Squid с поддержкой и COSS и aufs, COSS будет # использовать методы записи aufs. # #По умолчанию: # cache_dir ufs /usr/local/squid/cache 100 16 256 # # TAG: store_dir_select_algorithm # # Этот тэг определяет алгоритм выбора директории для кэширования некоторого # объекта. Установите этот тэг в значение 'round-robin' если необходимо # #По умолчанию: # store_dir_select_algorithm least-load # # TAG: max_open_disk_fds # # Этот тэг определяет максимальное количество открытых файлов одновременно. # # Значение 0 - без ограничений. # #По умолчанию: # max_open_disk_fds 0 # # TAG: minimum_object_size (в байтах) # # Этот тэг определяет минимальный размер объекта. Объекты, которые размером # будут менее установленного минимального, НЕ БУДУТ сохранятся на диск. # Значение указывается в килобайтах. По умолчанию 0 - без ограничений на # размер объекта. # #По умолчанию: # minimum_object_size 0 KB # # TAG: maximum_object_size (в байтах) # # Этот тэг определяет максимальный размер объекта. Объекты, которые размером # будут более установленного максимального, НЕ БУДУТ сохранятся на диск. # Значение указывается в килобайтах. По умолчанию, 4 Мб. # # ПРИМЕЧАНИЕ: если вы используете политику LFUDA вам следует увеличить это # значение. Для подробностей смотри тэг cache_replacement_policy. # #По умолчанию: # maximum_object_size 4096 KB # # TAG: cache_swap_low (percent, 0-100) # TAG: cache_swap_high (percent, 0-100) # # Эти тэги определяют нижний и верхний предел заполненности swap. Замена # объектов кэша, согласно выбранной политики, начинается, когда # заполненность swap достигнет нижней границы. Если заполненность swap # достигнет верхней границы, то замена объектов кэша будет происходить # более агрессивно. # # По умолчанию 90% и 95% соответственно. Если у вас большой кэш, 5% это # будут сотни мегабайт. В таком случае вы можете увеличить процент границ. # #По умолчанию: # cache_swap_low 90 # cache_swap_high 95 # # Секция: Журналирование(LOGFILE) # ----------------------------------------------------------------------------- # # TAG: logformat # # Использование: # # logformat <name> <format specification> # # Этот тэг определяет формат записи для журнала доступа(access.log) # # <format specification> это строка со специальными символами # # Специальные символы определяют некоторую базовую структуру записи данных в # журнал. Выходная строка будет автоматически сформирована из данных # определенных специальными символами. # # % ["|[|'| #] [-] [[0]width] [{argument}] formatcode # # " выходные данные заключить в кавычки # [ выходные данные в формате используемом для log_mime_hdrs # # выходные данные в URL формате # ' выходные данные как есть(as-is) # # - выравнивание по левому краю # width поля width. Если начинается с 0, # то выходные данные будут сдвинуты на 0 относительно левого края # {arg} аргумента. Например, название заголовка(Header) и т.п. # # Специальные символы: # # >a Client source IP address (Клиентский IP адрес) # # >A Client FQDN # (Клиентский FQDN) # # >p Client source port # (Клиентский порт) # # <A Server IP address or peer name # (IP адрес сервера или имя пира) # # la Local IP address (http_port) # (Локальный IP адрес) # # lp Local port number (http_port) # (Локальный порт) # # ts Seconds since epoch # (Прошло секунд с начала эпохи) # # tu subsecond time (milliseconds) # (Время в миллисекундах) # # tl Local time. Optional strftime format argument # (Локальное время). Формат по умолчанию %d/%b/%Y:%H:%M:%S %z # # tg GMT time. Optional strftime format argument # (GMT время). Формат по умолчанию %d/%b/%Y:%H:%M:%S %z # # tr Response time (milliseconds) # (Время ответа в мс) # # >h Request header. Optional header name argument # (Заголовок запроса). Опционально можно задать имя заголовка # header[:[separator]element] # # <h Reply header. Optional header name argument # (Заголовок ответа) # # un User name # (Имя пользователя) # # ul User name from authentication # (Имя авторизованного пользователя) # # ui User name from ident # (Имя пользователя от ident) # # us User name from SSL # (Имя пользователя от SSL) # # ue User name from external acl helper # (Имя пользователя от внешней программы авторизации) # # Hs HTTP status code # (Код ответа HTTP) # # Ss Squid request status (TCP_MISS etc) # (Ответ Squid на запрос) # # Sh Squid hierarchy status (DEFAULT_PARENT etc) # (Уровень этого Squid в иерархии нескольких прокси) # # mt MIME content type # (MIME тип) # # rm Request method (GET/POST etc) # (Метод запроса) # # ru URL запроса # # rv Протокол запроса, версия # # ea Лог строка возвращаемая от внешнего ACL # # <st Размер ответа включая HTTP заголовки # # >st Размер запроса включая HTTP заголовки # # st Общий размер Запрос + Ответ включая HTTP заголовки # # % знак % # # Форматы по умолчанию: # #logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt # #logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt # [%>h] [%<h] # #logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh # #logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" # "%{User-Agent}>h" %Ss:%Sh # #По умолчанию: # none # #Примечание break-people.ru: При задании формата, вы указываете его имя. Оно # понадобится в соответствующих директивах. Например, # первая строчка форматов по умолчанию задаёт # некоторый формат с именем squid. Это значит, что # затем в директивах типа access_log, вам не нужно # прописывать формат записи в журнал, а следует # просто указать имя squid вместо <logformat name>. # # TAG: access_log # # Этот тэг определяет местоположение журнала access.log в который будет производится # запись клиентской активности. Каждая строка содержит HTTP или ICP запрос. Формат: # # access_log <filepath> [<logformat name> [acl acl ...]] # access_log none [acl acl ...]] # # Этот тэг позволяет использовать механизм ACL при записи в журнал. Если ни # один ACL не указан, следовательно все поступившие запросы будут записаны в # журнал. # # Для отключения функции ведения журнала, укажите вместо <filepath> значение # "none". # # Для записи в журнал через syslog, укажите путь к "syslog": # # access_log syslog[:facility.priority] [format [acl1 [acl2 ....]]] # # где facility может быть одним из: # # authpriv, daemon, local0 .. local7 or user. # # priority может быть одним из: # # err, warning, notice, info, debug. # access_log /usr/local/squid/logs/access.log squid # # TAG: log_access allow|deny acl acl... # # Этот тэг позволяет определить, какие запросы будут записаны в журнал access.log. # (смотри директиву access_log). # # По умолчанию, записываются все запросы. То есть, к примеру, записываются все # запросы на 6785(число выбрано произвольно) порт. # # Пример, когда нужно запретить запись запросов на порт 6785 в журнал access.log: # #acl bad_port port 6785 #log_access deny bad_port # #Пример, когда нужно запретить запись запросов к www.google.ru в журнал access.log: # #acl google url_regex <nowiki>^http://www.google.ru</nowiki> #log_access deny google # #По умолчанию: # none # # TAG: cache_log # # Этот тэг определяет местоположение журнала cache.log. Этот журнал содержит # основную информацию об использовании кэша. # #По умолчанию: # cache_log /usr/local/squid/logs/cache.log # # TAG: cache_store_log # # Этот тэг определяет местоположение журнала store.log. Этот журнал # отражает, какие объекты были взяты из кэша, какие объекты хранятся и как # долго они хранятся. Для отключения ведения журнала введите "none". В этом # журнале нет информации, которая была бы полезна при анализе работы кэша. # Поэтому вы можете смело отключить ведение этого журнала. # #По умолчанию: # cache_store_log /usr/local/squid/logs/store.log # # TAG: cache_swap_state # # Этот тэг определяет местоположение файла "swap.state". Этот файл содержит # метаданные об объектах записананных на диск. Это используется при запуске # Squid, для быстрого сбора информации о кэше. Обычно этот файл # распологается в каждой директории cache_dir, но вы можете указать # альтернативное месторасположение. Помните, вы должны указать полный путь # к файлу, включая название файла, а не только путь из каталогов. # # Если переменная %s используется в имени файла, то она будет заменена на # полное имя директории кэша(полный путь к ней) cache_dir, где каждый знак # '/' будет заменятся на знак '.'. Это необходимо для разрешения # добавления/удаления cache_dir строк при использовании cache_swap_log. # # Если у вас более одной cache_dir и переменная %s не используется, то # swap файлы будут выглядеть так: # # cache_swap_log.00 # cache_swap_log.01 # cache_swap_log.02 # # Если вы измените порядок расположения cache_dir в конфигурационном # файле, то возникнет ошибка. Выход - удалить кэш и пересоздать его снова. # Либо не изменять порядок расположения cache_dir, если в кэш сделана уже # хотя бы одна запись. # #По умолчанию: # none # # TAG: logfile_rotate # # Этот тэг определяет количество ротаций лог-файла. По умолчанию - 10. Это # означает, что когда вы введете команду 'squid -k rotate', то текущий файл # журнала получит расширение от 0 до 9 и будет отложен. Вместо него # создастся новый файл для ведения журнала и теперь все записи будут вестись # уже в новый файл. Если установить значение тэга logfile_rotate 0, то это # отключит ротацию файлов. # # Помните, команда 'squid -k rotate' обычно отправляет сигнал USR1 к # запущенному процессу squid. В некоторых ситуациях(Например на Linux с # Async I/O), USR1 используется для других целей, поэтому -k rotate # использует другой сигнал. Следовательно вам не нужно использовать 'kill - # USR1 <pid>'. # #По умолчанию: # logfile_rotate 10 # # TAG: emulate_httpd_log on|off # # Этот тэг определяет включение/выключение эмуляции 'httpd' формата ведения # журнала. По умолчанию, Squid ведет журналы в своём собственном формате. # #По умолчанию: # emulate_httpd_log off # # TAG: log_ip_on_direct on|off # # Этот тэг определяет, вести ли запись IP адрес назначения запроса, если он # идет напрямую(direct). Ранние версии Squid вели запись имени # хоста(hostname). Если вы предпочитаете старый способ, то вам необходимо # установить значение этой директивы в off. # #По умолчанию: # log_ip_on_direct on # # TAG: mime_table # # Этот тэг определяет путь к таблице Squid's MIME. # #По умолчанию: # mime_table /usr/local/etc/squid/mime.conf # # TAG: log_mime_hdrs on|off # # Этот тэг определяет, вести ли запись обоих заголовков - запроса и ответа # для каждой HTTP транзакции. Для включения этой возможности, вам следует # установить значение этой директивы в on. # #По умолчанию: # log_mime_hdrs off # # TAG: useragent_log # # Примечание: этот тэг доступен только если Squid собран с опцией # --enable-useragent-log # # Этот тэг определяет файл, в который Squid будет записывать поле User-Agent # из HTTP запросов. По умолчанию, useragent_log выключен. # #По умолчанию: # none # # TAG: referer_log # # Примечание: этот тэг доступен только если Squid собран с опцией # --enable-referer-log option # # Этот тэг определяет файл, в который Squid будет записывать поле Referer из # HTTP запросов. По умолчанию, referer_log выключен. Помните, что "referer" # это ошибочное написание "referrer", т.е. "referrer" - правильное написание. # Но Squid понимает оба варианта. # #По умолчанию: # none # # TAG: pid_filename # # Этот тэг определяет местоположение файла в который будет происходить # запись id процесса. Для отключения, введите "none". # # Примечание: Если вы измените значение этого тэга, вам нужно будет изменить # на это же значение директиву squid_pidfile в /etc/rc.conf. Смотри # /usr/local/etc/rc.d/squid для подробностей. # #По умолчанию: # pid_filename /usr/local/squid/logs/squid.pid # # TAG: debug_options # # Этот тэг определяет секцию и уровень отладки. Формат записи debug_options # секция,уровень_отладки . Уровень может быть выставлен от 1 до 9. Чем выше # уровень отладки тем больше будет размер журнала. Рекомендуется "ALL,1". # #По умолчанию: # debug_options ALL,1 # # TAG: log_fqdn on|off # # Этот тэг позволяет включить/выключить запись полного формата доменных имен # в access.log. Для того, чтобы это сделать Squid осуществляет DNS поиск # всех подключающихся IP адресов. Этот тэг дополнительно нагружает систему в # связи с чем может снизится производительность. # #По умолчанию: # log_fqdn off # # TAG: client_netmask # # Этот тэг позволяет задать маску сети для клиентских адресов при записи в # журналы. Измените этот тэг если вы хотите сохранить конфиденциальность # ваших клиентов. Маска 255.255.255.0 означает, что у всех клиентских # адресов последняя цифра IP адреса будет заменена на 0 в журнале. По # умолчанию IP адреса записываются как есть. # #По умолчанию: # client_netmask 255.255.255.255 # # TAG: forward_log # # Примечание: этот тэг доступен только если Squid собран с опцией # --enable-forward-log option # # Этот тэг определяет местоположение журнала в который будет вестись запись # запросов сервера. # # Пока не работает. # #По умолчанию: # none # # TAG: strip_query_terms # # Этот тэг позволяет включить/выключить опцию удаления значений передаваемых # в URL запросе. Это сохраняет конфиденциальность ваших пользователей. # #По умолчанию: # strip_query_terms on # # TAG: buffered_logs on|off # # Этот тэг позволяет включить/выключить буферизацию данных перед записью в # файл журнала на диск. # #По умолчанию: # buffered_logs off # # Секция: FTP GATEWAYING # ----------------------------------------------------------------------------- # # TAG: ftp_user # # Этот тэг позволяет задать пароль ftp пользователю Anonymous(!!!) от имени # которого Squid будет осуществлять просмотр анонимных ресурсов по FTP # протоколу. Например, это может быть что-нибудь, вроде # wwwuser@somewhere.net # # #По умолчанию: # ftp_user Squid@ # # TAG: ftp_list_width # # Этот тэг устанавливает ширину ftp листинга. Листинг - это вывод данных по # запросу. При работе с ftp запрашивается содержимое, например, каталога. В # ответ приходит листинг содержимого. Если значение 'ftp_list_width' # установлено в значение 10, это означает, что имя каждого объекта # листинга(файл или каталог), будет обрезано до 10 символов. Значение 32 # установлено по умолчанию. # #По умолчанию: # ftp_list_width 32 # # TAG: ftp_passive # # Этот тэг разрешает/запрещает использование пассивных соединений. Если ваш # firewall не разрешает Squid использовать пассивные соединения, то # установите значение тэга в off. # #По умолчанию: # ftp_passive on # # TAG: ftp_sanitycheck # # Этот тэг разрешает/запрещает проверку FTP сервера на предмет безопасности. # Проверяется соответствие IP адреса FTP сервера с которого происходит # передача данных, с IP адресом к которому произведено подключение. Если вам # нужно разрешить FTP подключения к серверам использующим другие IP адреса # для передачи данных, то следует установить значение этого тэга в off. # #По умолчанию: # ftp_sanitycheck on # # TAG: ftp_telnet_protocol # # Этот тэг разрешает/запрещает использовать telnet протокол для контроля # соединения. # # Если у вас возникают проблемы с доступом к файлам, имена которых в ASCII # кодировке, или иные проблемы также связанные с ASCII кодировкой, то # следует установить значение этого тэга в off. # #По умолчанию: # ftp_telnet_protocol on # # Секция: EXTERNAL SUPPORT PROGRAMS # ----------------------------------------------------------------------------- # # TAG: diskd_program # # Этот тэг позволяет определить местополжение исполнительного файла diskd. # Помните, это имеет смысл только, если вы скомпилировали diskd как один из # модулей ввода/вывода. # #По умолчанию: # diskd_program /usr/local/libexec/squid/diskd-daemon # # TAG: unlinkd_program # # Этот тэг позволяет определить местоположение демона unlinkd. # #По умолчанию: # unlinkd_program /usr/local/libexec/squid/unlinkd # # TAG: pinger_program # # Примечание: этот тэг доступен только если Squid собран с опцией # --enable-icmp option # # Этот тэг позволяет определить местоположение программы pinger. # #По умолчанию: # pinger_program /usr/local/libexec/squid/pinger # # Секция: URL REWRITING # ----------------------------------------------------------------------------- # # TAG: url_rewrite_program # # Этот тэг позволяет определить местоположение исполнительного файла # программы URL rewriter. URL rewriter - программа преобразования URL. # Например, SquidGuard. В дальнейшем для краткости будем именовать такую # программу - Преобразователь. # # Соответственно, чтобы преобразователь сделал некоторое преобразование, # необходимо, чтобы Squid делал редирект на эту программу. Squid будет # делать редирект автоматически. # # Для каждого запрошенного URL, преобразователь получает строку от Squid в # таком формате: # # URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup <NL> # # И преобразователь может перенаправить клиента на другой URL. А может и # ничего не делать, но это было бы глупо. # # Преобразователь может вернуть и "urlgroup", которую можно завернуть на # cache_peer_access или на ACL вида urlgroup. # # По умолчанию, URL преобразователь не используется. # #Пример: #url_rewrite_program /usr/local/squid/bin/squidGuard -С /usr/local/etc/squid/squidGuard.conf # #По умолчанию: # none # # TAG: url_rewrite_children # # Этот тэг определяет число возможных дочерних процессов преобразователя. # Если это число будет большим, то это увеличит нагрузку на систему. # Помните, что при запуске Squid, все его дочерние процессы преобразователя # также запускаются и висят в памяти в ожидании строки для преобразования. # Соответственно, уменьшение количества дочерних процессов может сказатся на # скорости обработки запросов. # #По умолчанию: # url_rewrite_children 5 # # TAG: url_rewrite_concurrency # # Этот тэг определяет возможное число запросов, к каждому экземпляру # преобразователя, которые могут быть обрабатыватся # одновременно(параллельно). По умолчанию, 0, что определяет отсутствие # параллельности, т.е. обработка одного запроса одним экземпляром # преобразователя. # #По умолчанию: # url_rewrite_concurrency 0 # # TAG: url_rewrite_host_header # # Этот тэг разрешает/запрещает переписывать заголовок Host. # # ПРЕДУПРЕЖДЕНИЕ: Записи получившиеся после преобразования, кэшируются, # поэтому будьте осторожны если вы используете виртуальные хосты. # #По умолчанию: # url_rewrite_host_header on # # TAG: url_rewrite_access ACL # # Этот тэг определяет список, содержащий запросы, которые будут # перенаправлены к преобразователю. По умолчанию, все запросы # перенаправляются на него. # #По умолчанию: # none # # TAG: redirector_bypass # # Этот тэг разрешает/запрещает задержку запросов к преобразователю. Когда # значение этого тэга в значении on, запросы не будут проходить к этой # программе, если все дочерние экземпляры преобразователя заняты. Если # значение off и количество запросов к этой программе будет очень большим, # Squid закончит работу с выводом фатальной ошибки и потребует увеличить # количество возможных дочерних процессов преобразователя. Этот тэг # применяется если редиректор используется для аутентификации. # #По умолчанию: # redirector_bypass off # # TAG: location_rewrite_program # # Этот тэг определяет местоположение исполнительного файла программы # Location rewriter, которая используется для преобразования URL в ответах # сервера. Обычно используется в связке с url_rewrite_program. # # Для каждого Location header принимается строка следующего формата: # # location URL <SP> requested URL <SP> urlgroup <NL> # # И преобразователь может вернуть Location URL или пустую строку. Остальные # компоненты строки игнорируются. # # По умолчанию, Location преобразователь не используется. # #По умолчанию: # none # # TAG: location_rewrite_children # # Этот тэг определяет число возможных дочерних процессов преобразователя. # Если это число будет большим, то это увеличит нагрузку на систему. # Помните, что при запуске Squid, все его дочерние процессы преобразователя # также запускаются и висят в памяти в ожидании строки для преобразования. # Соответственно, уменьшение количества дочерних процессов может сказатся на # скорости обработки запросов. # #По умолчанию: # location_rewrite_children 5 # # TAG: location_rewrite_concurrency # # Этот тэг определяет возможное число запросов, к каждому экземпляру # преобразователя, которые могут быть обрабатыватся # одновременно(параллельно). По умолчанию, 0, что определяет отсутствие # параллельности, т.е. обработка одного запроса одним экземпляром # преобразователя. # #По умолчанию: # location_rewrite_concurrency 0 # # TAG: location_rewrite_access ACL # # Этот тэг определяет список, содержащий запросы, которые будут # перенаправлены к преобразователю. По умолчанию, все запросы # перенаправляются на него. # #По умолчанию: # none # # Секция: TUNING THE CACHE # ----------------------------------------------------------------------------- # # TAG: cache # # Этот тэг позволяет определить объекты, которые НЕ(!) будут кэшироватся. # Объекты задаются через ACL. При совпадении с ACL, объект будет братся # напрямую. # # Другими словами, используйте этот тэг для объектов, которые не должны # кэшироватся. # # Вы должны использовать слово 'DENY' для указания того, что объекты # совпадающие с этим ACL НЕ(!) должны кэшироватся. # # По умолчанию, разрешено кэшировать ВСЕ объекты. # #Мы рекомендуем использовать следующие две строчки: # acl QUERY urlpath_regex cgi-bin \? cache deny QUERY # # TAG: refresh_pattern # # Этот тэг позволяет настраивать дополнительные параметры оптимизации кэширования. Эти # настройки помогают Squid определить, брать объект для пользователя из кэша, или этот # объект уже устарел в кэше, и нужно скачать этот объект у первоисточника заново. # # Использование: refresh_pattern [-i] regex min percent max [options] # # По умолчанию, регулярные выражения РЕГИСТРОЗАВИСИМЫ. Для того, чтобы сделать # их регистроНЕзависимыми используйте опцию -i. # # 'Min' # # минимальное время(в минутах) для объектов, которым оно не задано явно, в течение # которого они(объекты) считаются "свежими". Рекомендуемое значение 0. Увеличение # этого значения может стать причиной некоторых ошибок в приложениях идущих через # Squid в Интернет. Например, при обращении к некоторому объекту он может быть выдан # из кэша, в то время как программе нужен "свежий", актуальный в это конкретное время # объект. В этой связи, для обработки некоторых данных, в приложение может поступить # устаревшая информация, что повлечет за собой ошибочность конечного результата. # # 'Percent' # # процент от возраста объекта(время прошедшее с момента последнего изменения). В # течение полученного времени объект считается "свежим". # # 'Max' # # максимальное время(в минутах) для объектов, которым оно не задано явно, в течение # которого они(объекты) считаются "свежими". # # Опции: # # override-expire # override-lastmod # reload-into-ims # ignore-reload # ignore-no-cache # ignore-private # ignore-auth # # override-expire # # использовать установленное минимальное время "свежести" объектов, если сервер # отправляет заголовок Expires. Т.е. что объект устарел. Использование этой опции # НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя # ответственность за возможные проблемы. # # override-lastmod # # использовать установленное минимальное время "свежести" объектов, которые были # изменены недавно. # # reload-into-ims # # изменяет клиентские запросы 'no-cache' или 'reload' на 'If-Modified-Since'. # Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы # принимаете на себя ответственность за возможные проблемы. # # ignore-reload # # игнорирование клиентских заголовков 'no-cache' или 'reload'. Использование этой # опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя # ответственность за возможные проблемы. # # ignore-no-cache # # игнорировать заголовки 'Pragma: no-cache' и 'Cache-control: no-cache' принятые # от сервера. HTTP RFC никогда не разрешало использовать Pragma заголовки # серверами. Это разрешается только клиентам, но сервера все равно отсылают эти # заголовки. # # ignore-private # # игнорировать заголовки 'Cache-control: private' принятые от сервера. # Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы # принимаете на себя ответственность за возможные проблемы. # # ignore-auth # # кэшировать ответы на запросы авторизации, если внешний(оригинальный) сервер # отправил заголовок 'Cache-control: public' в ответе. Использование этой опции # НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на себя # ответственность за возможные проблемы. # # Механизм действия: # # FRESH if expires < now, else STALE # STALE if age > max # FRESH if lm-factor < percent, else STALE # FRESH if age < min # else STALE # # Примечание break-people.ru: # А теперь механизм по-русски: # СВЕЖИЙ если время_когда_истекает_свежесть < текущее время(время сейчас), # иначе УСТАРЕЛ # УСТАРЕЛ если возраст > максимальный_возраст(Max) # СВЕЖИЙ если возраст_с_последнего_изменения < # процент_от_максимального_возраста_объекта, иначе УСТАРЕЛ # СВЕЖИЙ если возраст < минимальный_возраст(Min) # иначе УСТАРЕЛ # # Тэги refresh_pattern проходятся по порядку сверху вниз. Первое совпадение и # будет использоватся. Если совпадений не найдено, то будут использоватся # настройки по умолчанию. # #Рекомендуемые настройки: refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 # # TAG: quick_abort_min (KB) # TAG: quick_abort_max (KB) # TAG: quick_abort_pct (percent) # # Эти тэги устанавливают докачку объектов в кэш, если клиент оборвал # соединение. Кэш по умолчанию продолжает докачивать объект если осталось менее # 16 килобайт, даже если клиент отменил запрос. Это нежелательно на медленных # линиях и/или очень загруженных прокси-серверах. # # Когда пользователь отменяет запрос, Squid проверяет значения тэгов # quick_abort. # # Если осталось докачать 'quick_abort_min' килобайт, то Squid докачает. # # Если осталось докачать более чем 'quick_abort_max' килобайт, то Squid оборвет # закачку. # # Если более чем 'quick_abort_pct' процентов закачано, то Squid докачает. # # Если вы хотите, чтобы Squid никогда не докачивал после отмены запроса # клиентом, то установите оба тэга 'quick_abort_min' и 'quick_abort_max' в # значение '0 KB'. # # Если вы хотите, чтобы Squid всегда докачивал объекты, которые будут # кэшироватся, то установите значение тэга 'quick_abort_min' в '-1 KB'. # #По умолчанию: # quick_abort_min 16 KB # quick_abort_max 16 KB # quick_abort_pct 95 # # TAG: read_ahead_gap buffer-size # # Этот тэг устанавливает количество данных подлежащих буферизации прежде, чем # отправить их клиенту. # #По умолчанию: # read_ahead_gap 16 KB # # TAG: negative_ttl time-units # # Этот тэг устанавливает TTL(время жизни) кэшированных сообщений об # ошибках(например, "connection refused" или "404 Not Found"). По умолчанию 5 # минут. Помните, есть разница между этими сообщениями об ошибках и сообщениями # об ошибках связанных с DNS поиском записей. # #По умолчанию: # negative_ttl 5 minutes # # TAG: positive_dns_ttl time-units # # Этот тэг устанавливает TTL(время жизни) кэшированных корректных DNS ответов. # По умолчанию, 6 часов(360 минут). Этот тэг должен иметь значение выше # значения в negative_dns_ttl. # #По умолчанию: # positive_dns_ttl 6 hours # # TAG: negative_dns_ttl time-units # # Этот тэг устанавливает TTL(время жизни) кэшированных сообщений об ошибках DNS # поиска. Минимальное значение - 1 секунда, но не рекомендуется ставить это # значение меньше 10 секунд. # #По умолчанию: # negative_dns_ttl 1 minute # # TAG: range_offset_limit (bytes) # # Этот тэг устанавливает возможность запроса файла по частям(по кускам), прежде # чем Squid получит файл полностью. Если часть(кусок) файла находится за # пределами значения этого тэга, то эта часть НЕ кэшируется. # # Это позволяет Squid блокировать запросы к части файла начинающейся например с # семнадцатого мегабайта. Брать файл по кускам - обычная практика современных # закачивающих программ. # # Значение -1 сообщает Squid закачивать файл начиная с начала файла, даже если # пользователь запросил какую-то часть файла. Затем он кэширует этот объект и # выдает пользователю. (2.0 стиль (имеется ввиду такое принято в ветке 2.0 # Squid)) # # Значение 0 сообщает Squid не закачивать более чем, запросил клиент. (по # умолчанию) # #По умолчанию: # range_offset_limit 0 KB # # TAG: minimum_expiry_time (seconds) # # Этот тэг устанавливает минимальное время кэширования объектов в соответствии # с (Expires - Date) заголовками. В обратном прокси может быть желательным # установить меньшее время жизни объектов в кэше. Однако, лучший вариант - # когда ваш сервер будет обрабатывать более значимый заголовок - Last-Modified. # #По умолчанию: # minimum_expiry_time 60 seconds # # TAG: store_avg_object_size (kbytes) # # Этот тэг определяет средний размер объектов в кэше. Это необходимо для # подсчитывания количества объектов, которое может находится в вашем кэше. По # умолчанию, 13 KB. # #По умолчанию: # store_avg_object_size 13 KB # # TAG: store_objects_per_bucket # # Этот тэг определяет количество объектов на хэш-корзину. Уменьшение этого # значения увеличивает общее количество корзин. По умолчанию, 20. # #По умолчанию: # store_objects_per_bucket 20 # # Секция: HTTP # ----------------------------------------------------------------------------- # # TAG: request_header_max_size (KB) # # Этот тэг определяет максимальный размер HTTP заголовков в запросе. Размер # заголовков обычно небольшой(около 512 байтов). Установка ограничения на # размер заголовков в запросе может стать причиной некоторых ошибок. Например, # связанных с persistent соединениями, переполнением буфера или отказа в # обслужвании. # #По умолчанию: # request_header_max_size 20 KB # # TAG: reply_header_max_size (KB) # # Этот тэг определяет максимальный размер HTTP заголовков в ответе. Размер # заголовков обычно небольшой(около 512 байтов). Установка ограничения на # размер заголовков в ответе может стать причиной некоторых ошибок. Например, # связанных с persistent соединениями, переполнением буфера или отказа в # обслужвании. # #По умолчанию: # reply_header_max_size 20 KB # # TAG: request_body_max_size (KB) # # Этот тэг определяет максимальный размер тела запроса. Другими словами, # максимальный размер PUT/POST запросов. Пользователь, который отправит запрос # большего размера, чем указано в этом тэге, получит сообщение об ошибке # "Invalid request". Если вы установите этот тэг в значение 0 (по умолчанию), # то не будет никакого ограничения на размер тела запроса. # #По умолчанию: # request_body_max_size 0 KB # # TAG: broken_posts # # Этот тэг определяет дописывание дополнительных CRLF после тела PUT/POST # запроса. Запросы в которые необходимо дописывание CRLF заносятся в ACL, а # затем используются в этом тэге. # # Некоторые HTTP серверы имеют неправильную реализацию PUT/POST, и полагаются # на дополнительную пару CRLF при принятии PUT/POST запросов от некоторых WWW # клиентов. # # Цитата из RFC2616 секция 4.1 по этому поводу: # # Примечание: некоторые HTTP/1.0 клиенты реализованы с ошибками и добавляют # дополнительно CRLF после POST запроса. Чтобы исключить # возможные некорректные обработки POST запроса, все клиенты # HTTP/1.1 должны добавлять дополнительно CRLF к POST запросу # перед отправкой. # #Пример: # acl buggy_server url_regex <nowiki>^http://....</nowiki> # broken_posts allow buggy_server # #По умолчанию: # none # # TAG: via on|off # # Этот тэг разрешает/запрещает добавлять Via заголовок в запросы и ответы, как # того требует RFC2616. # #По умолчанию: # via on # # TAG: cache_vary # # Этот тэг разрешает/запрещает кэшировать Vary заголовок. Если 'cache_vary' в # значении off, то ответ содержащий Vary заголовок не будет кэширован. # #По умолчанию: # cache_vary on # # TAG: broken_vary_encoding # # Этот тэг определяет запрещение использования ETag. Множество серверов # неправильно работает с Content-Encoding "на лету", возвращая некоторый ETag в # обоих вариантах - plain и gzip:ed. Использование этого тэга приводит к тому, # что от Vary заголовка отделяется заголовок Accept-Encoding и он используется # вместо полученного ETag. # # Apache mod_gzip и mod_deflate имеют проблемы с обработкой Content-Encoding "на # лету", поэтому не будем доверять его ETag. acl apache rep_header Server ^Apache http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny all broken_vary_encoding allow apache # # TAG: collapsed_forwarding (on|off) # # Этот тэг разрешает/запрещает множество запросов к некоторому URI, обработать # как один запрос. Обычно запрещено во избежание увеличения задержки обработки # динамического контента. Разрешение же несет в себе пользу только при # включенном режиме accelerator, где веб-сервер является более надежным и # возвращает в основном кэшированную информацию. # #По умолчанию: # collapsed_forwarding off # # TAG: refresh_stale_hit (time) # # Этот тэг определяет время с момента устаревания объекта, втечение которого # объект может быть взят из кэша(Cache Hits), пока он(объект) # обновляется(заменяется на более новый). Другими словами, если объект ещё # полностью не обновился в кэше, но его запросил клиент, то можно этот объект # ему выдать из кэша, если прошло не более Х секунд с момента устаревания. По # умолчанию, 0 - выключает эту возможность. Эта настройка более интересна # только при использовании режима accelerator, при котором некоторые объекты # запрашиваются очень часто. # #По умолчанию: # refresh_stale_hit 0 seconds # # TAG: ie_refresh on|off # # Этот тэг включает/выключает поддержку старых версий IE(5.5 и ниже. А в 5.5 # SP1 это уже исправлено), которые не умеют работать с прозрачным # проксированием. Точнее, проблема связана с невозможностью правильного # refresh(Обновления) страницы. Включение поддержки позволяет решить эту # проблему лишь частично, направляя все IMS-REFRESH запросы от старых версий IE # к оригинальным серверам за свежим контентом. Т.е. частично пролетая кэш # Squid. Это сокращает попадания в кэш(в моем опыте на ~10%), но позволяет # пользователям иметь свежий контент тогда, когда они этого хотят. Помните, # поскольку Squid не может отличить 5.5 от 5.5SP1, то с 5.5SP1 Squid будет # дейстовать точно также как и с 5.5 и более старыми версиями. Новые версии IE, # к счастью, ведут себя иначе, поэтому Squid может их распознать и действовать # более эффективно. # #По умолчанию: # ie_refresh off # # TAG: vary_ignore_expire on|off # # Этот тэг разрешает/запрещает игнорировать объекты без заголовка Cache- # control. Многие HTTP сервера поддерживающие Vary выдают объекты, которые тут # же(немедленно после отдачи) устаревают, без заголовка cache-control, когда # объекта запрашивается клиентом HTTP/1.0. Этот тэг позволяет Squid # игнорировать в таких случаях время устаревания объекта. # # ПРЕДУПРЕЖДЕНИЕ: Включение этой возможности, может привести к кэшированию тех # объектов, для которых это не предназначено. # #По умолчанию: # vary_ignore_expire off # # TAG: extension_methods # # Этот тэг позволяет добавить расширенные методы запросов. Squid понимает # только стандартные HTTP методы запросов. Используя этот тэг вы можете # добавить до 20 расширенных методов. # #По умолчанию: # none # # TAG: request_entities # # Этот тэг разрешает/запрещает запрашивать объекты через GET и HEAD запросы. # Squid по умолчанию блокирует GET и HEAD запросы с запросом объекта, т.к. # такие запросы не определены в HTTP стандарте. # # Установите этот тэг в значение on если у вас есть клиенты, которым необходимо # запрашивать объекты через GET и HEAD запросы. Но будьте осторожны потому, что # такие запросы могут привести к ошибкам при обработке запросов, что сделает # вас уязвимым к загрязнению кэша. # #По умолчанию: # request_entities off # # TAG: header_access # # Использование: header_access header_name allow|deny [!]aclname ... # # ПРЕДУПРЕЖДЕНИЕ: Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту # опцию, вы принимаете на себя ответственность за возможные # проблемы. # # Этот тэг является заменой старого тэга 'anonymize_headers' и ещё более # старого 'http_anonymizer'. Тэг header_access представляет больше возможностей # для конфигурирования. Этот новый подход позволяет создавать ACL для каждого # заголовка, позволяя произвести более точные искажения заголовков. # # Вы можете указать только известные заголовки в качестве имени # заголовка(header_name). Другие заголовки классифицируются как 'Other'. Вы # таже можете использовать слово 'All', для того, чтобы применить некоторое # действие ко всем заголовкам. # # Например, чтобы сделать то, что раньше делала строка 'http_anonymizer # standard' вам нужно вставить вот такие строки: # # header_access From deny all # header_access Referer deny all # header_access Server deny all # header_access User-Agent deny all # header_access WWW-Authenticate deny all # header_access Link deny all # # Или, вместо строки 'http_anonymizer paranoid' теперь нужно ввести: # # header_access Allow allow all # header_access Authorization allow all # header_access WWW-Authenticate allow all # header_access Proxy-Authorization allow all # header_access Proxy-Authenticate allow all # header_access Cache-Control allow all # header_access Content-Encoding allow all # header_access Content-Length allow all # header_access Content-Type allow all # header_access Date allow all # header_access Expires allow all # header_access Host allow all # header_access If-Modified-Since allow all # header_access Last-Modified allow all # header_access Location allow all # header_access Pragma allow all # header_access Accept allow all # header_access Accept-Charset allow all # header_access Accept-Encoding allow all # header_access Accept-Language allow all # header_access Content-Language allow all # header_access Mime-Version allow all # header_access Retry-After allow all # header_access Title allow all # header_access Connection allow all # header_access Proxy-Connection allow all # header_access All deny all # # По умолчанию пропускаются все заголовки. # #По умолчанию: # none # # TAG: header_replace # # Использование: header_replace header_name message # # Пример: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit) # # Этот тэг позволяет вам изменять содержимое заголовков запрещенных через тэг # header_access. Это происходит заменой содержимого заголовка на некоторую # строку. Этот тэг заменяет старый тэг 'fake_user_agent'. Пример это наглядно # демонстрирует. Но так можно поступить и с любым другим заголовком. # # По умолчанию, заголовки удаляются, если они запрещены через header_access. # #По умолчанию: # none # # TAG: relaxed_header_parser on|off|warn # # Этот тэг разрешает/запрещает преобразовывать некорректно оформленные # заголовки http сообщений. # # По умолчанию, «on» разрешает Squid принимать некоторые формы http сообщения # оформленные не по стандарту, в которых понятно, какому приложению # предназначено это сообщение. Затем сообщение преобразуется в корректную # форму, после чего проходит через Squid к нужному адресату-приложению. # # Если установлено «warn», то при получении неправильно оформленного http # сообщения будет делатся запись в cache.log. # # Если установлено «off», то неправильно оформленное http сообщение будет # отклонено. # #По умолчанию: # relaxed_header_parser on # # Секция: TIMEOUTS # ----------------------------------------------------------------------------- # # TAG: forward_timeout time-units # # Этот тэг определяет какое время Squid может затратить на поиск пути для # исполнения запроса. # #По умолчанию: # forward_timeout 4 minutes # # TAG: connect_timeout time-units # # Этот тэг определяет как долго ожидать TCP соединения с запрошенным сервером # или соседским прокси, прежде чем Squid примет решение о поиске другого пути # для исполнения запроса. # #По умолчанию: # connect_timeout 1 minute # # TAG: peer_connect_timeout time-units # # Этот тэг определяет как долго ожидать установления связи с кэшем соседского # прокси. По умолчанию 30 секунд. Вы можете устанавливать для каждого # соседского кэша, своё время ожидания связи. Для этого воспольуйтесь опцией # 'connect-timeout' в тэге cache_peer. # #По умолчанию: # peer_connect_timeout 30 seconds # # TAG: read_timeout time-units # # Этот тэг определяет как долго ожидать следующей операции read(), т.е. сколько # времени дается серверу, чтобы он отправил клиенту следующую порцию данных. # После того как клиент считал отправленную сервером информацию, он снова будет # ожидать 'read_timeout' времени, в течение которого серверу необходимо # отправить ещё порцию информации. Если клиент не получил нисколько данных от # сервера по истечению 'read_timeout' времени, то исполнение запроса отменяется # в связи с ошибкой ERR_READ_TIMEOUT. По умолчанию, 15 минут. # #По умолчанию: # read_timeout 15 minutes # # TAG: request_timeout # # Этот тэг определяет как долго ожидать HTTP запроса после установления # соединения с сервером. # #По умолчанию: # request_timeout 5 minutes # # TAG: persistent_request_timeout # # Этот тэг определяет как долго ожидать следующего HTTP запроса в persistent # соединении, после предыдущего исполненного запроса. # #По умолчанию: # persistent_request_timeout 2 minutes # # TAG: client_lifetime time-units # # Этот тэг определяет как долго клиент(браузер) может быть подключен к Squid. # Это защищает кэш от большого числа соединений удаленных клиентов, которые # некорректно завершили сеанс связи и повисли в состоянии CLOSE_WAIT(ожидание # закрытия соединения)(например, сбой в сети или некачественное программное # обеспечение). По умолчанию, 1 день. 1 день равен 1440 минутам. # # ПРИМЕЧАНИЕ: Значение по умолчанию специально установлено достаточно большим, # даже если столько времени клиент никогда не будет работать со # Squid. Это сделано потому, что по истечению установленного # времени, клиент отключается от Squid. При этом не важно, идет # передача данных или нет. Если у вас возникла ситуация с # множеством "не живых" клиентов, то изменять значение тэга # 'client_lifetime' следует в последнюю очередь. Для начала мы # рекомендуем обратить внимание на значение тэгов read_timeout, # request_timeout, persistent_request_timeout и quick_abort. # #По умолчанию: # client_lifetime 1 day # # TAG: half_closed_clients # # Этот тэг разрешает/запрещает использовать наполовину закрытые соединения. Это # означает, например, записи нет, а чтение - есть. Иногда Squid не может # различить наполовину закрытые TCP соединения с полностью закрытыми. По # умолчанию, полузакрытые соединения остаются открытыми, до тех пор пока # операции read(2) или write(2) с сокетом не возвращают ошибки. Измените # значение этого тэга на 'off' и тогда Squid будет закрывать клиентские # соединения, как только операция read(2) вернет "no more data to read"(Нет # больше данных для чтения). # #По умолчанию: # half_closed_clients on # # TAG: pconn_timeout # # Этот тэг определяет время persistent соединений с серверами и другими прокси. # #По умолчанию: # pconn_timeout 1 minute # # TAG: ident_timeout # # Этот тэг определяет как долго ожидать завершения IDENT поиска. # # Если это значение слишком большое и у вас включен IDENT поиск для # непроверенных(untrusted) клиентов, то вы можете получить множество отказов # доступа к IDENT, т.к. много ident запросов будет приходить за раз. # #По умолчанию: # ident_timeout 10 seconds # # TAG: shutdown_lifetime time-units # # Этот тэг определяет как долго обслуживать клиента после получения сигналов # SIGTERM или SIGHUP. Любой активный клиент по прошествии 'shutdown_lifetime' # получит сообщение 'timeout', мол, время вышло. И соединение закроется. # #По умолчанию: # shutdown_lifetime 30 seconds # # Секция: ADMINISTRATIVE PARAMETERS # ----------------------------------------------------------------------------- # # TAG: cache_mgr # # Этот тэг определяет Email адрес на который будет отправлено сообщение, если # Squid рухнет. По умолчанию, "webmaster". # #По умолчанию: # cache_mgr webmaster # # TAG: mail_from # # Этот тэг определяет значение поля From: в письме, которое будет отправлено, # если Squid рухнет. По умолчанию используется 'appname@unique_hostname'. # По умолчанию 'appname' = "squid", и может быть изменено в src/globals.h перед # сборкой squid. # #По умолчанию: # none # # TAG: mail_program # # Этот тэг определяет программу, которая будет использоватся для отправки # письма. По умолчанию, "mail". Указанная программа должна быть совместима со # стандартным синтаксисом Unix mail: # # mail-program recipient < mailfile # # Дополнительно могут быть добавлены опции запуска mail программы: # #По умолчанию: # mail_program mail # # TAG: cache_effective_user # # Этот тэг определяет пользователя, от имени которого будет запущен Squid если # Squid запускаются из под root. И тогда реальные UID/GID будет заменены на # UID/GID указанного пользователя. Если указать 'cache_effective_user', но не # указать cache_effective_group, Squid установит GID от группы # 'cache_effective_user' по умолчанию(берет её из файла паролей). # #По умолчанию: # cache_effective_user squid # # TAG: cache_effective_group # # Этот тэг определяет группу, от имени которой будет запущен Squid. Это # применяется, если вы хотите, чтобы GID был отличный от того, который # использовался бы если группу не определять как группу по умолчанию для # cache_effective_user. Тогда привилегии указанной группы, перекроют все # привилегии пользователя. # #По умолчанию: # none # # TAG: httpd_suppress_version_string on|off # # Этот тэг включает/выключает пресечение выдачи версии Squid в http заголовках # и HTML страницах об ошибках # #По умолчанию: # httpd_suppress_version_string off # # TAG: visible_hostname # # Этот тэг определяет имя хоста(hostname), которое будет отображатся в # сообщениях об ошибках, и т.д. Если не указано, то будет использоваться # возвращаемое значение функции gethostname(). Если у вас кластер кэшей и вы # получаете ошибки связанные с IP форвардингом, то вы должны указать каждому # кэшу индивидуальное имя, через этот тэг. # #По умолчанию: # none # # TAG: unique_hostname # # Этот тэг определяет уникальное имя хоста(unique_hostname). Если у вас есть # несколько машин с одинаковым visible_hostname, то вы должны дать каждой # машине различные 'unique_hostname', чтобы форвардинг запросов проходил корректно. # #По умолчанию: # none # # TAG: hostname_aliases # # Этот тэг определяет привязки(алиасы) к имени хоста, где расположен кэш. # Другими словами, этот тэг позволяет определить список других DNS имен вашего # прокси-сервера. # #По умолчанию: # none # # TAG: umask # # Этот тэг определяет минимальный umask, который должен применятся в то время # как прокси запущен, в дополнение к umask установленном при запуске. # # Примечание: Umask должен начинатся с 0. # # Примечание break-people.ru: umask (от англ. user file creation mode mask - # маска режима создания пользовательских файлов) - # функция среды POSIX, изменяющая права доступа, # которые присваиваются новым файлам и директориям # по умолчанию. Права доступа файлов, созданных при # конкретном значении umask, вычисляются при помощи # следующих побитовых операций (umask обычно # устанавливается в восьмеричной системе # счисления). Взято с http://ru.wikipedia.org/wiki/Umask. # # #По умолчанию: # umask 027 # # Секция: CACHE REGISTRATION SERVICE # ----------------------------------------------------------------------------- # # Эта секция предназначена для тех, кто хочет зарегистрировать свой прокси на # трекере. Это может применятся для выстраивания иерархии кэшей. Для этого # нужно настроить некоторые параметры этой секции и ваши данные будут # опубликованы на трекере. По умолчанию, никаких данных от вашего прокси не # отсылается, так, что если вам кажется, что кто-то неправомерно пользуется # вашим прокси, то следует смотреть прежде всего в ACL. # # Примечание http://break-people.ru: Мы проверили трекер. В открытую там данных # не лежит, соответственно публичный прокси # никто из вашего прокси не сделает. Видимо, # зарегистрировав свой кэш на трекере вы # получаете некоторое место в их иерархии # кэшей. Зачем это нужно, пока не понятно, # ведь все равно за входящий траффик # придется платить. Возможно, это для # сокращения маршрута следования траффика. # # Отправляемые данные содержат hostname(имя хоста) и некоторую информацию из # этого конфигурационного файла: # # http_port # icp_port # cache_mgr # # Всю текущую информацию вы можете просмотреть по адресу # http://www.ircache.net/Cache/Tracker. # # TAG: announce_period # # Этот тэг определяет как часто отсылать информацию о вашем кэше. По умолчанию, # 0, что означает - не отсылать никогда. # #По умолчанию: # announce_period 0 # # Для включения возможности отправления информации о вашем кэше на трекер, раскомментируйте # строку ниже: #announce_period 1 day # # TAG: announce_host # TAG: announce_file # TAG: announce_port # Тэги announce_host и announce_port определяют имя хоста(hostname) и порт # регистрационного сервиса(трекера). # # Hostname по умолчанию 'tracker.ircache.net', а порт 3131. Если ввести # 'filename' в тэг 'announce_file', то данные этого файла также будут # присоединены к отправляемым данным. # #По умолчанию: # announce_host tracker.ircache.net # announce_port 3131 # # Секция: HTTPD-ACCELERATOR # ----------------------------------------------------------------------------- # # TAG: httpd_accel_no_pmtu_disc on|off # # В тех случаях, когда устройство перехватывающее траффик не способно полностью # следить за подключениями и выдает ошибки при форвардинге ICMP запросов, то # сообщения к прокси серверу доходят не целиком, а фрагментами. # # Если у вас ситуация, когда некоторые клиенты время от времени обрывают # соединение или никогда не дожидаются полного исполнения запроса, то # установите значение этого тэга в «on» # #По умолчанию: # httpd_accel_no_pmtu_disc off # # Секция: DELAY POOL PARAMETERS # ----------------------------------------------------------------------------- # #Примечание break-people.ru: В переводе, мы не будем переводить словосочетание # delay pool. Но договоримся, что оно будет означать - # пул задержки, бассейн, пул, полоса. Это сделано для # того, чтобы по тексту не возникало путаницы, при # использовании нами различных переводов этого # словосочетания. Ведь помимо перевода самого текста, # мы стараемся сделать так, чтобы текст был понятным и # читабельным. Надеемся, на ваше понимание. # # TAG: delay_pools # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-delay-pools # # Этот тэг отвечает за количество используемых delay pools. Например, если у # вас есть один delay pool класса 2 и один delay pool класса 3, то вцелом вы # имеете 2 delay pool. Соответственно, в этом случае, тэгу следует задать # значение равное 2. # #По умолчанию: # delay_pools 0 # # TAG: delay_class # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-delay-pools # # Этот тэг определяет класс для каждого delay pool. По одному тэгу, на одну # строку. Например, для определения двух delay pool, один из которых будет # класса 2, а другой - класса 3, ваши настройки будут выглядеть следующем # образом: # #Пример: # delay_pools 2 # 2 delay pool # delay_class 1 2 # первый delay pool класса 2 # delay_class 2 3 # второй delay pool класса 3 # #Примечание break-people.ru: Помимо того, что мы не будем переводить # словосочетание delay pool, ещё останется без перевода # слово bucket. Под ним мы часто подразумевают прямой # перевод - «ведро». Хотя абстракция ведра не совсем # корректна. Мы предлагаем иную абстракцию - «воронка». # С широкой стороны стоит Squid, а с узкой - клиент. # Форма и размеры воронки регулируются некоторыми # параметрами. Соответственно, если Squid "льет" # информацию в воронку, значит клиент может её # получить. Если в воронке пусто, то клиент ничего не # получает. Если Squid заливает в воронку быстрее, чем # клиент успевает считывать, то воронка наполнится до # краев. И заливатся будет тогда, когда освободится # место в воронке. Крайний случай, когда оба конца # воронки - одинаковы по размеру. Тогда весь поток, # который Squid закачивает в воронку, с той же # скоростью он(поток) считывается клиентом. А запросы к # серверу идут безо всяких ведер или воронок. НО # запросы не поступят в обработку, пока не освободится # место в воронке, т.е. какой смысл Squid закачивать # что-то, если это некуда положить. # # Классы delay pool: # # class 1 Одна воронка, на всех. # # class 2 Одна большая общая воронка для «C» сети и по # одной(индивидуальной) маленькой воронке на каждый хост(биты # с 25 по 32; т.е. 255 маленьких воронок). # # class 3 255 больших воронок для каждой «C» сети(так называемая, # сетевая(network) воронка; биты с 17 по 24; т.е. 255 больших # воронок) и по одной маленькой воронке на каждый хост. # # ПРИМЕЧАНИЕ: Если IP адрес представить как a.b.c.d, то: # # -> биты с 25 по 32 это класс "d" # -> биты с 17 по 24 это класс "c" # -> биты с 17 по 32 это "c * 256 + d" # #По умолчанию: # none # # TAG: delay_access # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-delay-pools # # Этот тэг позволяет определить попадание пользователей в некоторый delay pool, # на основе ACL. # # Проверка попадания запроса в delay pool, идет по порядку - с первого delay # pool по N-ый delay pool. Если запрос попал в какой-либо delay pool, согласно # ACL, то проверка прекращается. Если запрос НЕ попадает, ни в один delay pool, # то он не задерживаясь идет напрямую к клиенту(по умолчанию). # # Например, если вы хотите, чтобы одни клиенты шли через delay pool 1, а другие # через delay pool 2, то вам необходимо определить соответствующие ACL. # Например, этими ACL будут some_big_clients и lotsa_little_clients. Тогда, # чтобы исполнить поставленную задачу, вам следует ввести следующие строки: # #Пример: # delay_access 1 allow some_big_clients # delay_access 1 deny all # delay_access 2 allow lotsa_little_clients # delay_access 2 deny all # #По умолчанию: # none # # TAG: delay_parameters # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-delay-pools # # Этот тэг позволяет установить параметры для некоторого delay pool. Каждый # delay pool имеет некоторое количество воронок, используемое им. Количество # этих воронок определяется тэгом delay_class с установкой нужного класса delay # pool. # # Синтаксис ввода параметров для первого класса(class 1): # #delay_parameters pool aggregate # # Синтаксис ввода параметров для второго класса(class 2): # #delay_parameters pool aggregate individual # # Синтаксис ввода параметров для третьего класса(class 3): # #delay_parameters pool aggregate network individual # # где: # # pool номер delay pool. Т.е число между 1 и максимальным количеством # delay pool для заданного класса(delay_class). # # aggregate параметры для (единственной; общей)воронки(class 1, 2, 3). # # individual параметры для маленькой(индивидуальной) воронки(class 2, 3). # # network параметры для сетевой(network) воронки(class 3). # # Параметры представляют собой пару чисел записанных в формате restore/maximum. # # Где restore означает количество байтов(!!!) в секунду, которые будут # "вливатся" в воронку, а maximum это объем воронки, т.е. максимальное # количество байтов(не битов!!! Скорость на модемах часто пишется в битах), # которое можно "влить" в неё. # #Примечание break-people.ru: Большое количество восклицательных знаков # проставленное в предыдущем абзаце, обязывает пояснить # для тех кто не понял, и тех кто в танке, зачем это # сделано. Параметры для воронок устанавливаются в # БАЙТАХ. Скорость модемов/сетевых карт измеряется в # БИТАХ/КИЛОБИТАХ/МЕГАБИТАХ. Провайдер дает Интернет # указывая скорость в БИТАХ/КИЛОБИТАХ/МЕГАБИТАХ. Поэтому # при выставлении параметров эту разницу следует # учитывать. Например, чтобы ограничить скорость # закачивания в воронку на уровне 64 КИЛОБИТ в секунду, # а размер воронки ограничить на уровне 128 КИЛОБИТ, то # переводя в байты получим 64000 / 8 = 8000 байт. # Помним, что 64 КИЛОБИТ это 64 * 1000 = 64000 БИТ. По # той же схеме 128000 / 8 = 16000 байт. Используя # полученные данные записываем delay_parameters 1 # 8000/16000. Вот и всё. # # Например, если вы хотите, чтобы delay pool номер 1, второго класса(class 2) # использовался для ограничения скорости в 64 Килобит/с для каждого хоста, то # параметры этого delay pool будут следующие: # #delay_parameters 1 -1/-1 8000/8000 # # Помните, что число -1 используется для установки значения "без # ограничений"(unlimited) # # Или, если вы хотите, чтобы delay pool номер 2 третьего класса(class 3) # использовался для: # # 1) Ограничение общего канала «C» сети, по скорости на уровне 256 килобит/с; # 2) Каждая подсеть сети имеет ограничение по скорости на уровне 64 килобит/с; # 3) Каждый хост подсети имеет ограничение по скорости на уровне 4800 бит/с с # максимальным объемом воронки в 64 килобита. Это позволит нормально # просматривать веб-страницы и тормозить большие закачки. # # Решение для поставленной задачи выглядит следующим образом: # #delay_parameters 2 32000/32000 8000/8000 600/8000 # # Если не понял как это получилось, прочти наше примечание выше. # # Для одного delay pool может использоваться только один тэг delay_parameters. # #По умолчанию: # none # # TAG: delay_initial_bucket_level (в процентах, 0-100) # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-delay-pools # # Этот тэг определяет степень наполненности воронки, в процентах, прежде чем # клиент сможет с ней(воронкой) работать. Это необходимо потому, что воронки # будут пустыми при запуске Squid, перезапуске Squid или при первом обращении # клиента к этой воронке. В классах 2 и 3(class 2, class 3) индивидуальные # хосты и сети получают свои воронки только тогда, когда Squid "увидит" их. # Т.е. хост или сеть обратятся с запросом к Squid. # #По умолчанию: # delay_initial_bucket_level 50 # # WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS # ----------------------------------------------------------------------------- # # TAG: wccp_router # TAG: wccp2_router # # Эти тэги позволяют определить местоположение вашего WCCP 'home' роутера. То есть # указать IP адрес вашего WCCP роутера. # # Тэг wccp_router поддерживает работу только с одним WCCP(v1) роутером # # Тэг wccp2_router поддерживает работу с несколькими WCCPv2 роутерами # # Только один из этих тэгов может использоваться. Либо wccp_router, либо wccp2_router. # Использование обоих тегов в один и тот же момент, может привести к ошибкам. # #По умолчанию: # wccp_router 0.0.0.0 # # TAG: wccp_version # # Этот тэг позволяет определить используемую версию протокола. Обычно этот тэг # необходим, в случае, если вам нужно настроить WCCP(v1) на работу с очень старыми # Cisco роутерами. Во всех остальных случаях, следует оставить этот тэг в значении по # умолчанию. # # Помните, Cisco IOS 11.2 и более ранние поддерживают только третью версию WCCP. Если # это ваш случай, то вам необходимо изменить значение этого тэга на цифру 3, в # остальных случаях, не изменяйте этот параметра. # #По умолчанию: # wccp_version 4 # # TAG: wccp2_rebuild_wait # # Если этот тэг в значении 'on', тогда Squid будет ожидать завершения создания кэш # директории, прежде чем отправить первый wccp2 пакет 'HereIAm'(Я здесь). Этот пакет # сигнализирует WCCP роутеру о том, что Squid готов начать работу с ним. # #По умолчанию: # wccp2_rebuild_wait on # # TAG: wccp2_forwarding_method # # Этот тэг устанавливает используемый метод WCCP2 форвардинга. Возможные значения: # # 1 - GRE инкапсуляция (форвардинг пакета через GRE/WCCP туннель) # 2 - L2 редирект (форвардинг пакета используя перезапись Layer 2/MAC) # # Современные (такие как IOS 12.4) Cisco роутеры поддерживают только GRE. # Cisco свитчи поддерживают только L2 метод. # #По умолчанию: # wccp2_forwarding_method 1 # # TAG: wccp2_return_method # # Этот тэг устанавливает используемый метод WCCP2 возврата(возможно, ответа). Возможные # значения: # # 1 - GRE инкапсуляция (форвардинг пакета через GRE/WCCP туннель) # 2 - L2 редирект (форвардинг пакета используя перезапись Layer 2/MAC) # # Современные (такие как IOS 12.4) Cisco роутеры поддерживают только GRE. # Cisco свитчи поддерживают только L2 метод. # # Если команда "ip wccp redirect exclude in" включена на кэширующем интерфейсе, тогда # прокси сервер будет использовать L2 метод, даже если этот тэг настроен на работу с # GRE. # #По умолчанию: # wccp2_return_method 1 # # TAG: wccp2_assignment_method # # Этот тэг устанавливает используемый метод определения WCCP хэша. Возможные значения: # # 1 - Hash assignment # 2 - Mask assignment # # Cisco роутеры поддерживают метод hash assignment. # А Cisco свитчи поддерживают метод mask assignment. # #По умолчанию: # wccp2_assignment_method 1 # # TAG: wccp2_service # # Этот тэг позволяет настраивать маркировку траффик сервисов. Сервисы различаются по # типам. Сервису может быть назначен один из двух типов: "standard" или "dynamic". # Тип standard позволяет работать только с одной маркировкой(один id), т.е. только один # сервис - http (id 0). # Тип dynamic позволяет работать с несколькими сервисами(используя различные маркировки # - id) присваивая им(маркируя их) числами из диапазона - c 51 по 255 включительно. Для # использования типа dynamic, первый id должен определять тип траффика для редиректа; # Это настраивается через директиву wccp2_service_info. # # При использовании типа "standard", необязательно настраивать директиву # wccp2_service_info. # # Сервис MD5 аутентификации может быть включен, добавлением "password=<password>" в # конец директивы определения сервиса. # # Примеры: # # wccp2_service standard 0 # для standard сервиса 'web-cache' # wccp2_service dynamic 80 # для dynamic сервиса, который должен быть # конкретизирован дополнительными опциями # wccp2_service standard 0 password=foo # #По умолчанию: # wccp2_service standard 0 # # TAG: wccp2_service_info # # Этот тэг позволяет определить дополнительные опции для dynamic сервисов. Динамические # WCCPv2 сервисы требуют дополнительные опции для того, чтобы точнее определить # траффик(правильно маркировать), который вы хотите перенаправить(редиректить). # # Формат записи: # # wccp2_service_info <id> protocol=<protocol> flags=<flag>,<flag>.. # priority=<priority> ports=<port>,<port>.. # # Флаги WCCPv2: # + src_ip_hash, dst_ip_hash # + source_port_hash, dst_port_hash # + src_ip_alt_hash, dst_ip_alt_hash # + src_port_alt_hash, dst_port_alt_hash # + ports_source # # Список портов(ports) может содержать от одного до восьми значений. # # Пример: # # wccp2_service_info 80 protocol=tcp flags=src_ip_hash,ports_source priority=240 ports=80 # # Помните: id сервиса, должно быть сначала определено директивой # 'wccp2_service dynamic <id>'. # #По умолчанию: # none # # TAG: wccp2_weight # # Этот тэг позволяет настроить вес кэширующего сервера. Это необходимо для алгоритмов # прохождения по кэшам в поиске нужной информации. Вес должен быть обратно # пропорционален удаленности кэш-сервера. Чем ближе распологается кэш-сервер, тем # больше должен быть его вес. # #По умолчанию: # wccp2_weight 10000 # # TAG: wccp_address # TAG: wccp2_address # # Этот тэг позволяет установить IP адрес WCCP сервера. Используйте этот тэг, если вы # работаете с WCCP через нестандартный адрес интерфейса. # # По умолчанию не установлен никакой конкретный адрес. # #По умолчанию: # wccp_address 0.0.0.0 # wccp2_address 0.0.0.0 # # Секция: PERSISTENT CONNECTION HANDLING # ----------------------------------------------------------------------------- # # Смотрите также директиву "pconn_timeout" в секции TIMEOUTS. # #Примечание http://break-people.ru: В этой секции мы не переводим слово persistent. Так как # сложно точно определить, что это за соединения такие. # Мы будем подразумевать под persistent соединениями, # постоянные соединения. # # TAG: client_persistent_connections # TAG: server_persistent_connections # # Эти тэги включают/выключают поддержку Persistent соединений с клиентами и серверами # соответственно. По умолчанию, Squid использует persistent соединения(когда разрешено) # с клиентами и серверами. Вы можете использовать это тэг, чтобы выключить поддержку # persistent соединений с клиентами и/или серверами. # #По умолчанию: # client_persistent_connections on # server_persistent_connections on # # TAG: persistent_connection_after_error # # Этот тэг разрешает/запрещает использовать persistent соединения после возникновения # HTTP ошибки. Если этот тэг в значении «off», значит, после возникновения HTTP ошибки, # Squid перестанет использовать persistent соединение с этим клиентом. # #По умолчанию: # persistent_connection_after_error off # # TAG: detect_broken_pconn # # Этот тэг позволяет включить/выключить функцию Squid, которая служит для определения # некорректного persistent соединения. Некоторые сервера неправильно обрабатывают # HTTP/1.0 persistent соединения и это создает значительные задержки. Такая проблема # обычно возникает при редиректах. # # Установка значения этого тэга в «on», разрешит Squid определять некорректные # persistent соединения и завершать их после 10 секундного таймаута. # #По умолчанию: # detect_broken_pconn off # # Секция: CACHE DIGEST # ----------------------------------------------------------------------------- # #Примечание break-people.ru: Cache Digest это сборник информации об имеющихся данных в кэше # представленный в виде ключей(хэшей). Это удобно для поиска # информации в кэшах других прокси серверов. Общение выглядит # так - прокси сервер А, запрашивает у прокси сервера Б # информацию, мол, у тебя есть что-нибудь об объекте, ключ для # которого N? Если есть - дай мне, а я пользователю покажу. Но # чтобы, прокси могли общатся между собой, нужно настроить ICP. # # TAG: digest_generation # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг определяет генерировать или нет Cache Digest. # #По умолчанию: # digest_generation on # # TAG: digest_bits_per_entry # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг определяет количество битов на одну Digest запись. Запись представляет собой # информацию о HTTP методе и URL(публичные ключи; т.е. метод + URL пропущенные через # MD5. Например, для метода GET и URL = www.w3.org, ключом будет # e06a56257d8879d9e968e83f2ded3df7; Передается ключ, а не URL). По умолчанию 5. Это # означает, что ключ будет ограничен 32 символами, т.к. 2 в степени 5 = 32. # #По умолчанию: # digest_bits_per_entry 5 # # TAG: digest_rebuild_period (seconds) # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг устанавливает временной промежуток между пересозданием Cache Digest. # #По умолчанию: # digest_rebuild_period 1 hour # # TAG: digest_rewrite_period (seconds) # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг устанавливает временной промежуток между записью Cache Digest на диск. Имеет # смысл понять то, что записывать на диск одно и то же не особо нужно. Поэтому значения # тэгов digest_rebuild_period и digest_rewrite_period должны быть более менее схожи # друг с другом. То есть, создан новый Cache Digest - можно его и записать на диск. # #По умолчанию: # digest_rewrite_period 1 hour # # TAG: digest_swapout_chunk_size (bytes) # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг устанавливает размер порции данных для записи на диск одномоментно. По # умолчанию Squid записывает информацию Cache Digest, порциями по 4096 байтов(4 # килобайта). # #По умолчанию: # digest_swapout_chunk_size 4096 bytes # # TAG: digest_rebuild_chunk_percentage (percent, 0-100) # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-cache-digests # # Этот тэг устанавливает процент считывания Cache Digest за один момент. По умолчанию, # определено значение равное 10%. # #По умолчанию: # digest_rebuild_chunk_percentage 10 # # Секция: SNMP # ----------------------------------------------------------------------------- # # TAG: snmp_port # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-snmp option # # Этот тэг определяет порт SNMP для Squid. По умолчанию, порт - 3401. Если вы не хотите # использовать SNMP, установите значение тэга в "0", без кавычек. # #По умолчанию: # snmp_port 3401 # # TAG: snmp_access # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-snmp option # # Этот тэг позволяет разрешить или запретить доступ, к SNMP агенту Squid, на основе # ACL. # # По умолчанию, весь доступ к SNMP агенту запрещен. # # Использование: # # snmp_access allow|deny [!]aclname ... # #Пример: # snmp_access allow snmppublic localhost # snmp_access deny all # #По умолчанию: # snmp_access deny all # # TAG: snmp_incoming_address # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-snmp option # # TAG: snmp_outgoing_address # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-snmp option # # snmp_incoming_address использует SNMP сокет для приема сообщений по SNMP. # # snmp_outgoing_address использует SNMP сокет для отправки пакетов по SNMP. # # По умолчанию, установлено snmp_incoming_address (0.0.0.0). Это означает, что Squid # слушет порт 3401, на всех доступных сетевых интерфейсах системы. # # Если тэг snmp_outgoing_address установлен в значение 255.255.255.255 (по умолчанию), # то это означает, что будет использоватся тот же сокет(адрес) для отправки пакетов, # который используется для приема пакетов (установленный в тэге snmp_incoming_address). # Если вы хотите, чтобы ответы отправлялись через другой адрес, то используйте этот # тэг. # # Помните, тэги snmp_incoming_address и snmp_outgoing_address не могут иметь одинаковые # значение, т.к. они оба используют один и тот же порт. # #По умолчанию: # snmp_incoming_address 0.0.0.0 # snmp_outgoing_address 255.255.255.255 # # Секция: ICP OPTIONS # ----------------------------------------------------------------------------- # # TAG: icp_port # # Этот тэг определяет номер порта, который Squid будет использовать для отправки и # приёма ICP запросов к соседским кэшам и от них. По умолчанию, номер порта 3130. Чтобы # выключить использование ICP, установите значение этого тэга в "0", без кавычек. # #По умолчанию: # icp_port 3130 # # TAG: htcp_port # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-htcp option # # Этот тэг определяет номер порта, который Squid будет использовать для отправки и # приёма HTCP запросов к соседским кэшам и от них. По умолчанию, номер порта 4827. # Чтобы выключить использование HTCP, установите значение этого тэга в "0", без # кавычек. # #По умолчанию: # htcp_port 4827 # # TAG: log_icp_queries on|off # # Этот тэг включает/выключает запись ICP запросов в журнал. Если тэг в значении "on", # то запись будут проивзодится в журнал access.log. Если в "off" - запись не будет # производится. Возможно, вам захочется отключить эту возможность, если к вашему прокси # поступает ОЧЕНЬ много запросов, что затрудняет чтение и анализ логов в последующем. # #По умолчанию: # log_icp_queries on # # TAG: udp_incoming_address # # Этот тэг определяет адрес на котором, Squid будет принимать UDP пакеты от соседских # кэшей. # # По умолчанию, Squid слушает на всех доступных в системе сетевых интерфейсах. # # Если вам необходимо, чтобы Squid принимал все UDP пакеты на каком-то определенном # адресе, то используйте этот тэг для указания его(адреса). # # ПРИМЕЧАНИЕ: Тэг udp_incoming_address используется модулями ICP, HTCP, и DNS # Изменение значения этого тэга, затронет их(модули ICP, HTCP и DNS). # # смотри также: udp_outgoing_address # # Помните, udp_incoming_address и udp_outgoing_address не могут иметь одинаковые # значения, так как они оба используют один и тот же порт. # #По умолчанию: # udp_incoming_address 0.0.0.0 # # TAG: udp_outgoing_address # # Этот тэг определяет адрес от которого, Squid будет отправлять UDP пакеты к соседским # кэшам. # # По умолчанию, не установлен какой-то конкретный адрес. # # Если тэг udp_outgoing_address установлен в значение 255.255.255.255 (по умолчанию), # то это означает, что будет использоватся тот же сокет(адрес) для отправки пакетов, # который используется для приема пакетов (установленный в тэге udp_incoming_address). # Если вы хотите, чтобы пакеты отправлялись через другой адрес, то используйте этот # тэг. # # ПРИМЕЧАНИЕ: Тэг udp_ outgoing _address используется модулями ICP, HTCP, и DNS # Изменение значения этого тэга, затронет их(модули ICP, HTCP и DNS). # # смотри также: udp_incoming_address # # Помните, udp_incoming_address и udp_outgoing_address не могут иметь одинаковые # значения, так как они оба используют один и тот же порт. # #По умолчанию: # udp_outgoing_address 255.255.255.255 # # TAG: icp_hit_stale on|off # # Этот тэг разрешает/запрещает отправку ICP_HIT для устаревших объектов кэша. Если вы # хотите, чтобы возвращалось ICP_HIT для устаревших объектов, то установите значени # этого тэга в "on". Если у вас настроена связь с соседскими прокси в других # административных доменах, то значение этого тэга должно быть в "off". Если вы один, # управляете всеми соседскими кэшами, тогда можно установить этот тэг в "on". Если # значение этого тэга "on", то соседские прокси должны использовать опцию 'allow-miss' # в тэге cache_peer для вашего кэша. # #По умолчанию: # icp_hit_stale off # # TAG: minimum_direct_hops # # Этот тэг определяет минимальное количество прыжков(hops) до соседского кэша. Если # количество прыжков(при использовании ICMP ping) до соседского кэша будет больше # указанного в этом тэге числа, то сайт будет браться напрямую(direct). Это может быть # полезно, если соседский прокси, имеющий нужную информацию, находится далеко. В таком # случае, если до него количество прыжков до него больше, чем установлено в этом тэге, # то необходимая информация(сайт) будет братся напрямую из Интернет. # #По умолчанию: # minimum_direct_hops 4 # # TAG: minimum_direct_rtt # # Этот тэг определяет минимальное время отклика от соседского кэша. Если время отклика # от соседского кэша(при использовании ICMP ping) будет больше указанного в этом тэге, # то необходимая информация(сайт) будет браться напрямую из Интернет. Это может быть # полезно, если соседский прокси, имеющий нужную информацию, находится далеко. В таком # случае, если его время отклика больше, чем установлено в этом тэге, то необходимая # информация(сайт) будет братся напрямую из Интернет. # #По умолчанию: # minimum_direct_rtt 400 # # TAG: netdb_low # TAG: netdb_high # # Эти тэги задают нижнюю и верхнюю границы количества записей для базы данных измерения # ICMP, соответственно. В этой базе хранятся данные о произведенных ping'ах(время # затраченное на доступ и количество прыжков). Указывается в цифрах! Не в процентах!. # По умолчанию, 900 и 1000, соответственно. Как только будет достигнута верхняя # граница(накопится 1000 записей), то Squid согласно некоторым правилам(устаревшие # записи и т.п.), начнет удалять записи из netdb. Он будет удалять их до тех пор, пока # их количество не станет равным нижней границе(пока не станет 900 записей). При других # цифрах логика та же, т.к. пример приведен для значений по умолчанию. # #По умолчанию: # netdb_low 900 # netdb_high 1000 # # TAG: netdb_ping_period # # Этот тэг устанавливает минимальный промежуток времени между ping'ами в одну и ту же # сеть. По умолчанию, промежуток составляет 5 минут. # #По умолчанию: # netdb_ping_period 5 minutes # # TAG: query_icmp on|off # # Этот тэг определяет будут ли включать или нет ICMP данные в ICP запросы, ваши соседи. # # Если ваши соседские прокси скомпилированы с опцией '--enable-icmp', то они будут # включать в ICMP данные, информацию об ICMP ping'ах до того веб-сервера, чей URL был # запрошен вашим прокси. Если вы установите значение этого тэга в "on", то в ICP ответы # от соседей будет включена и ICMP информация(если таковая есть). Затем, Squid выберет # соседский кэш, до которого будет минимальное время отклика, и назначит его для себя # родительским. Такой родительский кэш, будет обозначатся в журнале access.log, в поле # hierarchy(Иерарахия), как "CLOSEST_PARENT_MISS"(Ближайший родительский кэш). По # умолчанию, этот тэг установлен в значение "off". # #По умолчанию: # query_icmp off # # TAG: test_reachability on|off # # Это тэг определяет, будет ли заменятся ответ ICP_MISS на ICP_MISS_NOFETCH. Если # значение тэга установлено в "on", то будет происходить замена ICP_MISS на # ICP_MISS_NOFETCH, когда запрашиваемого хоста НЕТ в ICMP базе или его время отклика # равно нулю. # #По умолчанию: # test_reachability off # # TAG: icp_query_timeout (msec) # # Этот тэг определяет время таймаута(как долго ожидать ответа) для(от) соседей. Обычно, # Squid сам неплохо, автоматически определяет оптимальное время таймаута ICP запроса. # Если вы хотите это изменить, то установите значение этого тэга в любое ненулевое # значение. Это значение должно устанавливатся в МИЛЛИСЕКУНДАХ. Это означает, что для # записи таймаута в 2 секунды, нужно записать 2000, т.к. 2000 миллисекунд, равны 2 # секундам. Например: # # icp_query_timeout 2000 # #По умолчанию: # icp_query_timeout 0 # # TAG: maximum_icp_query_timeout (msec) # # Этот тэг определяет максимальный таймаут(как долго ожидать ответа) для(от) соседей. # Обычно таймаут ICP запроса определяется динамически. Но иногда на это затрачивается # очень большое время(скажем, 5 секунд). Используйте этот тэг для установки верхней # границы таймаута ICP запроса. НЕ используйте этот тэг для установки фиксированного # времени таймаута! Для установки фиксированного времени таймаута используйте тэг # icp_query_timeout. # #По умолчанию: # maximum_icp_query_timeout 2000 # # TAG: minimum_icp_query_timeout (msec) # # Этот тэг определяет минимальный таймаут(как долго ожидать ответа) для(от) соседей. # Обычно таймаут ICP запроса определяется динамически. Но иногда на это затрачивается # очень малое время, даже меньше чем требует того установление соединения с сервером. # Используйте этот тэг для установки нижней границы таймаута ICP запроса. НЕ # используйте этот тэг для установки фиксированного времени таймаута! Для установки # фиксированного времени таймаута используйте тэг icp_query_timeout. # #По умолчанию: # minimum_icp_query_timeout 5 # # Секция: MULTICAST ICP # ----------------------------------------------------------------------------- # # TAG: mcast_groups # # Этот тэг позволяет определить список multicast групп, к которым может подключатся ваш # сервер для получения ICP запросов. # # ПРИМЕЧАНИЕ! Будьте очень осторожны при настройке этого тэга! Вы должны быть уверены, # что понимаете разницу между ICP _query_ (ICP _запрос_) и ICP _reply_ (ICP # _ответ_). Этот тэг следует использовать только если вы хотите ПРИНИМАТЬ # multicast запросы. НЕ используйте этот тэг для рассылки multicast ICP # (вместо этого, используйте cache_peer). ICP ответы всегда отправляются # через unicast, так что изменение этого тэга либо не будет иметь эффекта, # либо вы будет получать ответы от членов multicast группы. # # НЕ используйте multicast адрес, который уже используется другой multicast группой. # # Если вы не уверены в том, нужен ли вам multicast, то вы можете получить # дополнительную информацию о нём в Squid FAQ в главе Multicast (http://www.squid- # cache.org/FAQ/). # # Использование: mcast_groups 239.128.16.128 224.0.1.20 # # По умолчанию, Squid не слушает multicast группы. # #По умолчанию: # none # # TAG: mcast_miss_addr # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-multicast-miss # # Этот тэг определяет адрес на который будет отсылатся каждый "cache miss" URL. # # Не используте этот тэг, если вы не понимаете его предназначения. # #По умолчанию: # mcast_miss_addr 255.255.255.255 # # TAG: mcast_miss_ttl # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-multicast-miss # # Этот тэг определяет TTL(time-to-live; время жизни) для исходящих "cache miss" # multicast пакетов. По умолчанию, 16. # #По умолчанию: # mcast_miss_ttl 16 # # TAG: mcast_miss_port # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-multicast-miss option # # Этот тэг устанавливает номер порта для адреса, определенного в тэге # mcast_miss_addr. # #По умолчанию: # mcast_miss_port 3135 # # TAG: mcast_miss_encode_key # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --enable-multicast-miss option # # Этот тэг определяет ключ для шифрования URL в multicast пакетах "cache miss". # #По умолчанию: # mcast_miss_encode_key XXXXXXXXXXXXXXXX # # TAG: mcast_icp_query_timeout (msec) # # Этот тэг определяет таймаут для ICP опроса, который рассылается с целью установления # количества клиентов(peer; пиров) прослушивающих данный multicast адрес. Другими # словами, как долго будет Squid ожидать ответа от всех "живых" клиентов multicast # группы слушающей этот адрес. По умолчанию, 2 секунды, что равняется 2000 # миллисекундам. # #По умолчанию: # mcast_icp_query_timeout 2000 # # Секция: INTERNAL ICON # ----------------------------------------------------------------------------- # # TAG: icon_directory # # Этот тэг определяет директорию где распологаются иконки(значки). Обычно это # /usr/local/etc/squid/icons # #По умолчанию: # icon_directory /usr/local/etc/squid/icons # # TAG: global_internal_static # # Этот тэг определяет будет ли в Squid работать внутренний веб-сервер, который позволит # подменять содержимое некоторых URL адресов, для клиентов. Если значение тэга «on», то # веб-сервер будет использоваться, а если значение тэга «off» то не будет. # Информация(иконка, рисунок, html) для подмены может братся редиректором с внутреннего # веб-сервера Squid(Если значение тэга global_internal_static on). Информация(иконка, # рисунок, html) доступна из сети, например к иконке, таким образом # <nowiki>http://127.0.0.1:3128/squid-internal-static/icons/anthony-dir.gif).</nowiki> Расположение её # на сервере, обычно в /usr/share/squid/icons. Теперь если вам необходимо, подменить, # скажем, флэш баннер, вы, используя редиректор(SquidGuard, rejik etc), прописываете в # нем(редиректоре) путь к подменяемой информации(иконке, рисунку, html), доступному из # сети. Таким образом, можно обойтись без Apache. Можно и без использования # редиректора. Для этого следует воспользоватся тэгом deny_info. Тэг deny_info # поддерживает ACL, что делает его очень удобным и гибким. # #По умолчанию: # global_internal_static on # # TAG: short_icon_urls # # Этот тэг разрешает/запрещает Squid использовать короткие URL для иконок. # # Если значение тэга «off», то URL для иконок будут абсолютными, включая в себя имя # прокси и порт. # #По умолчанию: # short_icon_urls off # # Секция: ERROR PAGE # ----------------------------------------------------------------------------- # # TAG: error_directory # # Этот тэг определяет директорию, где расположены HTML страницы, которые будут # выводится пользователю при возникновении HTTP ошибки, т.н. Error pages(например, 404 # File Not Found или 502 Bad Gateway и т.п.). Если вы хотите создать и использовать # свои собственные страницы с сообщениями об ошибках, то вы можете взять в качестве # шаблона те, которые выдаются по умолчанию. По умолчанию, они(страницы), расположены в # /usr/local/etc/squid/errors/English. Внимание! Путь зависит от операционной системы. # Таким образом вы копируете эти страницы в некоторый каталог, например в # /usr/local/etc/squid/errors/myPages, изменяете их в соответствии со своими # пожеланиями и, затем, устанавливаете этот путь, значением тэга 'error_directory'. # Получится что-то вроде этого: # # error_directory /usr/local/etc/squid/errors/myPages # #По умолчанию: # error_directory /usr/local/etc/squid/errors/English # # TAG: error_map # # Этот тэг позволяет назначить определенный HTML-файл для вывода пользователю, при # возникновении определенной HTTP ошибки. # # ВНИМАНИЕ: Если вы хотите использовать этот тэг, то необходимо, чтобы Squid работал в # режиме Accelerator(т.н. Обратный прокси), т.е., чтобы был включен # внутренний веб-сервер Squid. Либо вместо внутреннего веб-сервера Squid, # можно использовать Apache. # # error_map message_url http_status ... # # Вместо http_status ..., следует поставить номер HTTP ошибки.Например, 404 # # Этот тэг полезен при использовании редиректоров(accelerator), если они(редиректоры) # возвращают(могут возвращать) коды ошибок отличающиеся от общепринятых. # # error_map <nowiki>http://your.server/error/404.shtml 404</nowiki> # # Запросы к страницам об ошибках, выполняются методом GET. К запросу дополнительно # присоединяются следующие заголовки: # # X-Error-Status: HTTP статус-код ошибки (например, 404) # X-Request-URI: Запрошенный URI, который вызвал ошибку # # Также присоединяются заголовки от клиента: # # User-Agent, Cookie, X-Forwarded-For, Via, Authorization, # Accept, Referer # # В ответе сервера, будут содержатся заголовки: # # Server, Via, Location, Content-Location # # Ответ от сервера будет содержать также все HTTP заголовки, которые пришли от клиента. # Тело же ответа, будет взято из файла указанного в тэге error_map на эту HTTP ошибку. # #По умолчанию: # none # # TAG: err_html_text # # Этот тэг определяет HTML текст который будет включатся во все сообщения об HTTP # ошибках. Используйте его для указания e-mail адреса администратора, например. # # Чтобы определить, где будет распологатся текст определенный в тэге err_html_text, вам # следует отредактировать шаблон HTML файла, с сообщением об ошибке(можно найти в # директории "errors"). В том месте, где вы хотите расположить указанный текст, # добавьте тэг %L. # #По умолчанию: # none # # TAG: deny_info # # Использование: deny_info err_page_name acl # или так deny_info <nowiki>http://... acl</nowiki> # # Пример: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys # # Этот тэг используется для определения возвращаемой страницы для запросов не прошедших # правила, установленные через http_access. Также Squid позволяет использовать ACL, # чтобы определить круг запросов, которые бы получали некоторую HTML-страницу. Вместо # страницы, можно указывать и рисунки. Это может быть полезно, если вы хотите, вы # режете баннеры через Squid. И чтобы страница, выдаваемая клиенту не сильно # изменялась, вы можете назначить отображать вместо баннеров(например, вы режете # баннеры через ACL url_regex), картинку с надписью - "Здесь был баннер". Всё зависит от вашей # фантазии. # # Вы можете использовать ERR_ страницы об ошибках, которые идут вместе со Squid или # создать свои собственные и положить их в errors/ директорию. # # Кроме того, вы можете указать URL страницы, которая будет выдаватся при возникновении # HTTP ошибки. В таком случае, браузеры будут перенаправлены(код 302) на определенный # URL. # # Более того, вы можете сообщить Squid очистить TCP соединение через TCP_RESET. # #По умолчанию: # none # # Секция: INFLUENCING REQUEST FORWARDING # ----------------------------------------------------------------------------- # # TAG: nonhierarchical_direct # # Этот тэг определяет, будет ли Squid обращатся к первоисточнику(оригинальному серверу # в Интернет) напрямую, если запрос является non-hierarchical(Не иерархическим). В # данном контексте, «non-hierarchical» означает, что либо запрос совпадает со списком # hierarchy_stoplist, либо запрос относится к НЕкэшируемым запросам! # # Если вы установите значение этого тэга в «on», то Squid будет перенаправлять # такие(non-hierarchical) запросы к родительскому кэшу. # # Помните, что установив значение в «off», вы дополнительно увеличите время обработки # этого запроса, без какого либо увеличения количества попаданий в кэш(HIT ratio). # # Если ваш прокси сервер находится ЗА файрволлом(firewall), то вам лучше использовать # тэг never_direct вместо этого. # #По умолчанию: # nonhierarchical_direct on # # TAG: prefer_direct # # Этот тэг определяет, будет ли Squid использовать сначала выход напрямую в Интернет с # запросом, вместо того, чтобы сначала спросить у родительского кэша. Обычно Squid, для # большинства запросов старается использовать родительский кэш(вместо выхода напрямую). # Если, по некоторым причинам, вам необходимо, чтобы Squid шел сразу напрямую(direct) в # Интернет с запросом, и только в случае ошибки или невозможности пройти напрямую, # Squid бы обращался к родительскому кэшу, то установите этот тэга в значение «on». # # Комбинация из тэгов nonhierarchical_direct off и prefer_direct on приведет к тому, # что Squid будет использовать родительский кэш только тогда, когда не получается # обработать запрос напрямую. # # Примечание: Если вы хотите использовать родительский кэш для ВСЕХ запросов, то вам # нужно обратить внимание на тэг never_direct. Тэг prefer_direct позволяет # изменить только то, как будет действовать Squid при работе с кэшируемыми # объектами. # #По умолчанию: # prefer_direct off # # TAG: always_direct # # Использование: always_direct allow|deny [!]aclname ... # # Этот тэг позволяет определить какие(чьи) запросы, будут ВСЕГДА идти напрямую в # Интернет. В качестве параметров тэга используются списки ACL. Например, для того, # чтобы некоторые локальные сервера шли в обход братских и родительских кэшей, напрямую # в Интернет, следует сначала создать соответствующий ACL и уже его(ACL) использовать в # тэге always_direct. Получится что-то вроде этого: # # acl local-servers dstdomain my.domain.net # always_direct allow local-servers # # Для того, чтобы FTP запросы всегда шли напрямую, необходимо записать следующее: # # acl FTP proto FTP # always_direct allow FTP # # ПРИМЕЧАНИЕ: Существует и обратный тэгу always_direct тэг never_direct. Вы должны # понимать, что "always_direct deny foo" НЕ(!) то же самое, что и # "never_direct allow foo". Правило deny для тэга always_direct можно # использовать, для вычленения некоторой подгруппы из группы. Например, # чтобы пускать напрямую все локальные сервера, а группу local-external, # также относящуюся к локальным серверам, нет(т.е. не пускать напрямую). # # Пример: # # acl local-external dstdomain external.foo.net # acl local-servers dstdomain .foo.net # always_direct deny local-external # always_direct allow local-servers # # ПРИМЕЧАНИЕ: Если вы хотите, чтобы клиент шел напрямую к первоисточнику(оригинальному # серверу в Интернет) минуя Squid, то вам необходимо проделать некоторые # настройки на стороне клиента(например, исключить его из тех, кто получает # доступ в Интернет через Squid). Конфигурирование в этом ключе Squid, # лишь сообщает прокси-серверу, каким путем получить объект(напрямую или # через соседские кэши). # # ПРИМЕЧАНИЕ: Этот тэг никак не влияет на кэширование. Ответы кэшируются как обычно, # даже от тех запросов, которые обозначены тэгом always_direct. Для того, # чтобы НЕ кэшировать ответы, смотри опцию 'no_cache'. # # Этот тэг является заменой local_domain и and local_ip. # #По умолчанию: # none # # TAG: never_direct # # Использование: never_direct allow|deny [!]aclname ... # # Этот тэг позволяет определить какие(чьи) запросы, НИКОГДА НЕ БУДУТ идти напрямую в # Интернет. В качестве параметров тэга используются списки ACL. # # never_direct является противоположностью always_direct. Прочтите сначала описание # тэга always_direct, если вы до сих пор этого не сделалали. # # Например, если вы хотите, чтобы прокси использовался для всех запросов, за # исключением тех, что находятся в вашем локальном домене, то вам следует записать что- # то вроде этого: # # acl local-servers dstdomain .foo.net # acl all src 0.0.0.0/0.0.0.0 # never_direct deny local-servers # never_direct allow all # # Если Squid находится за файрволлом(firewall) и существуют локальные внутренние # сервера, также за файрволлом(firewal), то для того, чтобы организовать доступ # напрямую для этих внутренних серверов, следует записать что-то вроде этого: # # acl local-intranet dstdomain .foo.net # acl local-external dstdomain external.foo.net # always_direct deny local-external # always_direct allow local-intranet # never_direct allow all # # Этот тэг заменяет тэги inside_firewall и firewall_ip. # #По умолчанию: # none # # Секция: ADVANCED NETWORKING # ----------------------------------------------------------------------------- # # TAG: incoming_icp_average # TAG: incoming_http_average # TAG: incoming_dns_average # TAG: min_icp_poll_cnt # TAG: min_dns_poll_cnt # TAG: min_http_poll_cnt # # Немного магии. Мы не можем поверить, что вы читаете эти строки. Вы сошли с ума? Даже # не пытайтесь понять, что делают эти тэги. Прежде чем менять значения по умолчанию, # ознакомьтесь сначала с алгоритмами описанными в comm_select.c ! # #По умолчанию: # incoming_icp_average 6 # incoming_http_average 4 # incoming_dns_average 4 # min_icp_poll_cnt 8 # min_dns_poll_cnt 8 # min_http_poll_cnt 8 # # TAG: tcp_recv_bufsize (bytes) # # Этот тэг определяет размер буфера TCP сокета. Установите тэг в значение «0», чтобы # использовать значение по умолчанию. # #По умолчанию: # tcp_recv_bufsize 0 bytes # # Секция: DNS # ----------------------------------------------------------------------------- # # TAG: check_hostnames # # Этот тэг определяет будет ли Squid проверять DNS имена на соответствие интернет # стандартам RFC. Из соображений безопасности, по умолчанию Squid будет производить # такую проверку. Если вы не хотите, чтобы Squid проверял DNS имена, то установите # значение этого тэга в «off». # #По умолчанию: # check_hostnames on # # TAG: allow_underscore # # Этот тэг определяет, будет ли Squid считать корректными, DNS имена в которых # используется знак подчеркивания(Также называемый «земля»т.е. «_»). Знак подчеркивания # строго не допускается в именах хостов(hostname, DNS именах), но всё же используется # многими сайтами. Установите значение этого тэга в «off», если хотите, чтобы Squid # строго соблюдал стандарт. Эта настройка имеет значение, только если тэг # check_hostnames в значении «on». # #По умолчанию: # allow_underscore on # # TAG: cache_dns_program # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --disable-internal-dns option # # Этот тэг определяет местоположение исполнительного файла DNS программы(программа # осуществляющая поиск DNS записей). # #По умолчанию: # cache_dns_program /usr/local/libexec/squid/dnsserver # # TAG: dns_children # # Примечание: Этот тэг доступен только, если Squid скомпилирован с опцией # --disable-internal-dns option # # Этот тэг определяет количество процессов, которые будут отведены под DNS программу. # Для сильно загруженных серверов, возможно, потребуется увеличить это число до 10. # Максимально возможное значение - 32. По умолчанию, 5. # # Вы должны иметь хотя бы один запущенный процесс DNS сервера. # #По умолчанию: # dns_children 5 # # TAG: dns_retransmit_interval # # Этот тэг определяет интервал между отправками DNS запросов. Список DNS серверов, # проходится сверху вниз и если ни один сервер не ответил, то Squid возвращается к # началу списка, удваивает интервал между отправками DNS запросов(Например, при первом # проходе, между отправкой двух запросов прошло 5 секунд. Значит при втором, интервал # между ними будет составлять уже 10 секунд) и проходит список заново сверху вниз. Если # и в этот раз, никто не ответил, то Squid ещё раз удвоит и всё пойдет заново. # #По умолчанию: # dns_retransmit_interval 5 seconds # # TAG: dns_timeout # # Этот тэг определяет таймаут(как долго ожидать ответа) для DNS запроса. Если не пришло # ни одного ответа в течение этого времени, то запрошенный домен будет считатся # несуществующим. # #По умолчанию: # dns_timeout 2 minutes # # TAG: dns_defnames on|off # # Этот тэг определяет, будет ли Squid работать с однокомпонентными DNS именами. Обычно # этот тэг в значении «off». Это предотвращает распознавание однокомпонентных DNS # имен(hostnames) как локальных имен. Для того, чтобы Squid обрабатывал # однокомпонентные имена, установите значение этого тэга в «on». # #По умолчанию: # dns_defnames off # # TAG: dns_nameservers # # Этот тэг позволяет определить список DNS серверов(IP адреса), которые будут # использоватся вместо тех, что определены в /etc/resolv.conf файле. # В Windows если этот список не определен(посредством тэга dns_nameservers или # /etc/resolv.conf), то будет использоватся список из реестра Windows. Поддерживается # статическая и динамическая DHCP конфигурации. # # Пример: dns_nameservers 10.0.0.1 192.172.0.4 # #По умолчанию: # none # # TAG: hosts_file # Этот тэг определяет местоположение файла hosts. Этот файл содержит список IP адресов # и ассоциированных с ними имен(hostname). Местоположение файла в некоторых # операционных системах: # # - Un*X & Linux: /etc/hosts # - Windows NT/2000: %SystemRoot%\system32\drivers\etc\hosts # - Windows XP/2003: %SystemRoot%\system32\drivers\etc\hosts # - Windows 9x/Me: %windir%\hosts # - Cygwin: /etc/hosts # # Пример записи в файле hosts: # # 192.168.1.5 external.example.com # # Комментарий # 192.168.1.6 right.example.com left.example.com up.example.com # # Как вы можете видеть - по одной записи на строку. Имена(hostname) разделяются # пробелом(если их несколько). # - Используется для комментирования. # #По умолчанию: # hosts_file /etc/hosts # # TAG: dns_testnames # # Этот тэг определяет список имен хостов(hostname) на примере которых, производится # работоспособность DNS программы. # # Этот тест может быть выключен использованием опции -D в командной строке. # #По умолчанию: # dns_testnames netscape.com internic.net nlanr.net microsoft.com # # TAG: append_domain # # Этот тэг определяет, что добавлять к имени хоста, если в нем(имени) нет ни одной # точки. Значение тэга должно начинатся с символа точки «.». # # Обратите внимание, что сейчас интернет имена без точек, используются только для # доменов верхнего уровня, поэтому настройка этого тэга, может сделать некоторые сайты # недоступными. # #Пример: # append_domain .yourdomain.com # #По умолчанию: # none # # TAG: ignore_unknown_nameservers # # Этот тэг определяет, будет ли Squid принимать ответы от неизвестных DNS серверов. По # умолчанию, Squid проверяет, чтобы DNS ответ пришел с того же IP адреса, на который # был отправлен запрос. Если IP адреса различны, Squid будет игнорировать ответ и также # сделает запись в журнале cache.log. Вы можете разрешить принимать ответы с # неизвестных DNS серверов. Для этого установите значение этого тэга в «off». # #По умолчанию: # ignore_unknown_nameservers on # # TAG: ipcache_size (число; количество записей) # TAG: ipcache_low (в процентах) # TAG: ipcache_high (в процентах) # # Эти тэги определяют количество записей, нижнюю и верхнюю границы соответственно для # DNS базы IP адресов. # #По умолчанию: # ipcache_size 1024 # ipcache_low 90 # ipcache_high 95 # # TAG: fqdncache_size (число; количество записей) # # Этот тэг определяет максимальное число FQDN записей. # #По умолчанию: # fqdncache_size 1024 # # Секция: MISCELLANEOUS # ----------------------------------------------------------------------------- # # TAG: memory_pools on|off # # Этот тэг определяет, будет ли однажды выделенная(но сейчас не используемая) память, # доступна для использования в будущем. Если вам необходимо освобождать память, которая # была выделена(но сейчас не используется), то установите значение этого тэга в «off». # #По умолчанию: # memory_pools on # # TAG: memory_pools_limit (bytes) # # Используется, только если тэг memory_pools в значении on: # memory_pools_limit 50 MB # # Этот тэг определяет максимальный размер памяти(выделенной, но не используемой), # который Squid будет удерживать в memory pools. Squid НЕ выделяет память заранее, # просто будет удерживать ту, что занял в процессе выполнения какой-либо операции. # Поэтому вы можете установить значение этого тэга достаточно большим, даже если ваша # система сильно ограничена в ресурсах памяти. # # Если установить значение в «0», то Squid будет удерживать столько памяти сколько # сможет. Это означает, что в таком случае ограничения на размер удерживаемой памяти # будут сняты. # # Чтобы выключить эту опцию, не надо устанавливать значение этого тэга в «0». Для этого # нужно задать значение тэга memory_pools в «off». # #По умолчанию: # memory_pools_limit 5 MB # # TAG: forwarded_for on|off # # Этот тэг определяет, будет ли Squid вставлять IP адрес клиента в заголовок X- # Forwarded-For. По умолчанию, это выглядит так: # # X-Forwarded-For: 192.1.2.3 # # Если вы установите тэг в значение «off», то вид заголовка будет иной: # # X-Forwarded-For: unknown # #По умолчанию: # forwarded_for on # # TAG: cachemgr_passwd # # Этот тэг позволяет вам определить пароль для доступа в cachemgr. Защита эта довольно # слабая, так как пересылка аутентификационных данных идет в незашифрованном виде. # Кроме того, можно указать действия, которые будут доступны для человека # использовавшего этот пароль для аутентификации. # # Использование: cachemgr_passwd password action action ... # # Некоторые доступные действия(action). Смотри меню Cache Manager для получения полного # списка: # # 5min # 60min # asndb # authenticator # cbdata # client_list # comm_incoming # config * # counters # delay # digest_stats # dns # events # filedescriptors # fqdncache # histograms # http_headers # info # io # ipcache # mem # menu # netdb # non_peers # objects # offline_toggle * # pconn # peer_select # redirector # refresh # server_list # shutdown * # store_digest # storedir # utilization # via_headers # vm_objects # # * Отмеченные действия являются теми действиями, которые нельзя выполнить без ввода # пароля. Например, shutdown(выключение). # # Чтобы выключить эту функцию, установите значение тэга в "disable". # Чтобы разрешить доступ без пароля, установите значение тэга в "none". # # Используйте слово "all" для установки некоторого пароля для всех действий. # #Пример: # cachemgr_passwd secret shutdown # cachemgr_passwd lesssssssecret info stats/objects # cachemgr_passwd disable all # #По умолчанию: # none # # TAG: client_db on|off # # Этот тэг определяет, будет ли собиратся статистика о клиентах(IP адреса). Если вы # хотите запретить сбор статистики о клиентах, то установите значение этого тэга в # «off». Собранную статистику вы можете просмотреть через Cache Manager на странице # client_list. Структура ClientInfo занимает около 240 байт на 32-разрядных машинах и # около 300 байт на 64-разрядных. Если у вас возникает нехватка памяти, вы можете # выключить эту функцию, установив значение тэга в «off». # #По умолчанию: # client_db on # # TAG: reload_into_ims on|off # # Этот тэг определяет, будут ли запросы 'no-cache' или 'reload' преобразовыватся в # запросы вида If-Modified-Since. # # Использование этой опции НАРУШАЕТ стандарт HTTP. Включая эту опцию, вы принимаете на # себя ответственность за возможные проблемы. # # смотри также refresh_pattern # #По умолчанию: # reload_into_ims off # # TAG: maximum_single_addr_tries # # Этот тэг определяет максимальное количество попыток для установления соединения с # сервером, который имеет только один IP адрес(Если сервер имеет несколько IP адресов, # то будет произведено по одной попытке подключения на каждый из них). # # По умолчанию, 1. Максимальное количество(не рекомендуется) - 255. Предупреждение # будет выдаватся при установке этого значения более 10. # #По умолчанию: # maximum_single_addr_tries 1 # # TAG: retry_on_error # # Этот тэг определяет, будет ли Squid автоматически повторять отправку запроса, при # получении сообщения об ошибке. Это бывает полезным если у вас выстроена иерархия # кэшей и вы их тестируете на предмет контроля доступа. # #По умолчанию: # retry_on_error off # # TAG: as_whois_server # # Этот тэг позволяет определить WHOIS сервер, который будет использоватся для получения # номера AS. # # ПРИМЕЧАНИЕ: AS номера запрашиваются только при запуске Squid, а не для # каждого запроса. # #По умолчанию: # as_whois_server whois.ra.net # as_whois_server whois.ra.net # # TAG: offline_mode # # Этот тэг позволяет установить так, чтобы Squid работал только в режиме оффлайн. Это # означает, что он будет брать объекты только из кэша. # #По умолчанию: # offline_mode off # # TAG: uri_whitespace # # Этот тэг определяет, что делать с запросами, которые имеют пробелы в URI. # # Действия: # # strip: Пробелы будут удалятся. Это рекомендуется стандартом RFC2396. # # deny: Запрос будет запрещен. Пользователь получит сообщение "Invalid # Request"(Некорректный запрос). # # allow: Запрос будет передан как есть, т.е. URI не будет изменен. Помните, что # пробелы будут обработаны редиректором, если, конечно, он(редиректор) есть. # # encode: Пробелы будут кодированы в соответствии с RFC1738 и переданы дальше. Это # может быть нарушением стандарта HTTP/1.1 RFC, поскольку прокси-серверам не # разрешатеся переделывать URI. # # chop: Запрос будет обрезан после первого же пробела. Использование этой опции может # привести к проблемам связанным с обработкой запросов. # #По умолчанию: # uri_whitespace strip # # TAG: coredump_dir # # Этот тэг определяет местоположение директории, которая будет содержать core файлы. По # умолчанию Squid определяет под core файлы, директорию, откуда запущен Squid. Если вы # установите значением тэга, уже существующую директорию, то Squid сделает chdir() в # этот каталог и будет складывать core файлы уже в него. # #По умолчанию: # coredump_dir none # # Оставлять core файлы в первой директории кэша: coredump_dir /usr/local/squid/cache # # TAG: chroot # # Этот тэг позволяет определить корневой каталог для Squid в ходе # инициализации(считывания конфигов). Squid теряет права root после инициализации. Это # означает, например, что если Squid слушает HTTP порт <1024 и пытаетесь перечитать # конфигурационные файлы, Squid выдаст ошибку - "Can not open the port"(Не могу открыть # порт). # #Пример: # chroot /squid # #По умолчанию: # none # # TAG: balance_on_multiple_ip # # Этот тэг включает/выключает поддержку работы с серверами, которые управляют нагрузкой # используя несколько IP адресов. То есть вся нагрузка(траффик) распределяется через # несколько IP адресов. # # По умолчанию, Squid изменяет используемый IP адрес, при каждом новом запросе. # Установите значение этого тэга в «off» и тогда смена IP адреса произойдет только при # ошибке подключения(отсутствии соединения). # #По умолчанию: # balance_on_multiple_ip on # # TAG: pipeline_prefetch # # Этот тэг позволяет включить/выключить поддержку обработки двух запросов одновременно. # По умолчанию, Squid обрабатывает в один момент один запрос(от одного подключения). Но # может обрабатывать и два запроса. Это полезно для увеличения производительности. Это # реализовано, открытием ещё одного соединения с первоисточником. Но если быстрее был # обработан второй запрос, то он будет ждать, пока не обработается первый. И затем # клиенту сначала придет обработка первого запроса и уже потом второго. Если вы хотите, # чтобы Squid за раз обрабатывал два запроса, то установите значение этого тэга в «on». # Из соображений безопасности по умолчанию, этот тэг в «off». # #По умолчанию: # pipeline_prefetch off # # TAG: high_response_time_warning (msec) # # Этот тэг позволяет установить время ответа от сервера. Если среднее время ответа в # течение минуты превышает указанное в этом тэге время, то Squid выведет # предупреждение, если debug level 0, для привлечения внимания администраторов. # #По умолчанию: # high_response_time_warning 0 # # TAG: high_page_fault_warning # # Этот тэг позволяет установить лимит на количество ошибок на страницу. Если количество # ошибок превысит заданное значение в этом тэге, то Squid выведет предупреждение, если # debug level 0. # #По умолчанию: # high_page_fault_warning 0 # # TAG: high_memory_warning # # Этот тэг позволяет определить лимит на размер используемой памяти. Если размер # используемой памяти превысит заданное значение в этом тэге, то Squid выведет # предупреждение, если debug level 0. # #По умолчанию: # high_memory_warning 0 KB # # TAG: sleep_after_fork (microseconds) # # Этот тэг позволяет установить время, в течение которого главный процесс Squid будет # стоять на паузе(sleep) после выполнения системного вызова fork(). Squid использует # вызов fork(), для разветвления(распараллеливания) процессов вспомогательных # программ(helper programs), таких как редиректоры, программы аутентификации и DNS # сервисы. Т.е. fork() вызывается для создания процесса-потомка, чтобы он выполнял # разгрузил процесс-родитель. На некоторых системах вызов fork() требует использования # всей доступной памяти(реальной и виртуальной). Поэтому вызов fork() может закончится # ошибкой "out of memory"(Недостаточно памяти). Использование тэга sleep_after_fork # может быть полезно, если не получается создать процесс-потомок из-за нехватки памяти. # В течение этой паузы Squid перестает принимать запросы. # #По умолчанию: # sleep_after_fork 0