Все ленты — последние статьи

Squid (кеширующий прокси для http): установка, настройка и использование

Назначение

 

Представляет собой HTTP, FTP, gopher, SSL и WAIS (убрано в 2.6) proxy, кеширующий запросы. Также кеширует DNS. Один процесс на всех, неблокированный ввод/вывод, держит часто используемые объекты в виртуальной памяти. Бесплатен (GPL). Основан на проекте Harvest. Поддерживает иерархию или сеть серверов (ICP/UDP — Internet Cache Protocol, HTCP/TCP, multicast). Откуда брать объект определяется так (в упрощенном виде): послать ICP/HTCP/multicast запросы ко всем подходящим соседям; подождать определенное время; загрузить с первого соседа, пославшего HIT; иначе загрузить с первого отца, ответившего MISS; иначе загрузить с первоисточника. Предусмотрены различные методы оптимизации для выбора наиболее быстрого источника.

Делается различие между частными и общими объектами. Кешируются только общие объекты. Только метод GET дает общие объекты. Объекты, попавшие в стоп-лист есть частные объекты. Если запрос содержит аутентификационную информацию или ответ типа "401 Unauthorized" — это частный объект.

cache digest — очень компактная форма представления какие объекты имеются в кеше. Кеши могут обмениваться этой информацией с соседями, чтобы избежать необходимости делать ICP-запросы. В качестве ключей объектов используется MD5.

Текущая стабильная версия: Squid 3.0-STABLE24 (переписано на C++, официально добавлен ICAP), Squid 2.7-STABLE8, Squid 2.6-STABLE23; готовится к выходу 3.1 (отличия 2.7.STABLE8 от 2.6.STABLE23, 2.6.STABLE23 от 2.6.STABLE16, 2.6.STABLE16 от 2.6.STABLE12, 2.6.STABLE12 от 2.5.STABLE14, 2.5.STABLE14 от 2.5.STABLE6, 2.5.STABLE6 от 2.4, 2.4 от 2.3, 2.3 от 2.2).

Установка

Полезные ключи ./configure (--help, squid -v)

  • --prefix=/usr/local/squid (куда инсталлировать файлы, также имеется множество дополнительных ключей для тонкой настройки расположения файлов)
  • --enable-async-io=число-нитей (подразумевает --with-aufs-threads=число-нитей, --with-pthreads, --enable-storeio=ufs,aufs)
  • --enable-storeio="список-методов-хранения" (ufs — unix file system; aufs — async unix file system; diskd — отдельные процессы для асинхронного доступа к файлам; null — не хранить данные на диске; coss — файловая система COSS)
  • --enable-icmp (измерять путь до каждого HTTP-сервера при запросах с помощью ICMP, используется для оптимизации выбора сервера или соседа)
  • --enable-htcp (HTCP — вариант ICP по TCP, синхронизация кеша с соседями)
  • --enable-forw-via-db (включить поддержку БД Forw/Via для оптимизации выбора сервера или соседа)
  • --enable-cache-digests (использовать Cache Digests для оптимизации выбора сервера или соседа)
  • --enable-carp (включить балансировку с помощью CARP — Cache Array Routing Protocol; в новых версиях его надо наоборот отключать: --disable-carp)
  • --disable-wccp (не включать поддержку протокола WCCP — Web Cache Coordination Protocol — позволяет Cisco IOS автоматически распознавать падение сервера)
  • --disable-wccpv2
  • --enable-delay-pools (управление ограничением трафика)
  • --enable-useragent-log (журнализовать заголовок Useragent)
  • --enable-referer-log (журнализовать заголовок Referer)
  • --enable-forward-log (поддержка директивы forward_log, в 2.6)
  • --enable-kill-parent-hack (помогает сделать shutdown чисто)
  • --enable-snmp (включить SNMP сервер для мониторинга)
  • --enable-arp-acl (поддержка ACL, основанных на ethernet MAC адресах)
  • --enable-cachemgr-hostname=имя-хоста (cachemgr.cgi будет по умолчанию натравлен на этот хост)
  • --enable-err-language=языки-для-сообщений-об-ошибках (по умолчанию — все)
  • --enable-default-err-language=язык-сообщений-об-ошибках (Russian-1251?)
  • --enable-gnuregex (вместо regex, плохо работающего в старых Linux)
  • --enable-poll (можно использовать poll, epoll или select; poll быстрее, но не на всех платформах работает; обычно выбор делается автоматически, но если вы умнее configure, то можете это проверить)
  • --disable-poll
  • --enable-select
  • --disable-select
  • --enable-select-simple (использовать только простое подмножество select)
  • --enable-epoll
  • --disable-epoll
  • --disable-http-violations (игнорировать все строки в конфигурации, которые нарушают стандарты HTTP)
  • --enable-ipf-transparent (разрешить поддержку transparent proxy для систем, использующих IP-Filter — в ядре Linux 2.2 и без этого хорошо)
  • --enable-pf-transparent (разрешить поддержку transparent proxy для систем, использующих PF network address redirection)
  • --enable-linux-netfilter (transparent proxy для ядра Linux 2.4)
  • --enable-large-cache-files (позволяет хранить в кеше файлы размером более 2GB; при этом меняется формат хранения; 2.6)
  • --enable-linux-tproxy (поддержка Netfilter TPROXY)
  • --disable-ident-lookups (ident в современном мире — вещь бесполезная)
  • --disable-internal-dns (вместо внутренних запросов использовать внешние процессы dnsserver; рекомендуется для версий до 2.4)
  • --enable-truncate (обнулять файлы вместо их удаления: быстрее, но требует много inode; были проблемы, когда переполнялась таблица inode; наверное, параметр minimum_object_size из-за этого появился; не рекомендуется для асинхронного ввода/вывода)
  • --disable-unlinkd (запретить использование внешних процессов для удаления файлов)
  • --enable-underscores (позволять подчеркивания в именах хостов, надеясь что резолвер их не обрежет; в 2.6 заменён директивой squid.conf)
  • --enable-heap-replacement (использовать улучшенные алгоритмы замещения кеша вместо стандартного LRU, в версиях Squid до 2.4; в новых версиях рекомендуется использовать --enable-removal-policies)
  • --enable-removal-policies="lru,heap" (улучшенные алгоритмы замещения кеша вместо стандартного LRU, в версиях Squid 2.4 и выше)
  • --enable-dlmalloc (своя библиотека malloc, не быстрая но без memore leak)
  • --enable-ssl (включить поддержку работы в качестве шлюза SSL с помощью OpenSSL)
  • --enable-auth="список методов аутентификации" (по умолчанию только basic; вместе со squid поставляются: basic, digest, ntlm, negotiate; имеется множество дополнительных ключей, позволяющих настраивать отдельные методы аутентификации:
    • --enable-basic-auth-helpers="список программ для аутентификации basic" (в комплекте имеются: getpwnam, LDAP, MSNT (обращается к NT серверу), mswin_sspi (только под MS Windows NT?), multi-domain-NTLM, NCSA, PAM, SASL, SMB, YP)
    • --enable-ntlm-auth-helpers="список программ для аутентификации ntlm" (в комплекте имеются: fakeauth (проверяет только синтаксис запроса), mswin_sspi (только под MS Windows NT?), no_check (проверяет только синтаксис запроса), SMB (обращается к контроллеру домена)
    • --enable-ntlm-fail-open (делать клиентам "поблажки")
    • --enable-digest-auth-helpers="список программ для аутентификации digest" (в комплекте имеются: password, ldap)
    • --enable-negotiate-auth-helpers="список программ для аутентификации negotiate" (в комплекте имеются: mswin_sspi (только под MS Windows NT?))
  • --enable-external-acl-helpers="список программ для проверки ACL" (в комплекте имеются: ip_user, ldap_group, mswin_lm_group, session, unix_group, wbinfo_group)
  • --enable-follow-x-forwarded-for (отслеживать цепочку X-Forwarded-For, 2.6)
  • --with-large-files (журналы и пр.)
  • --with-maxfd=число-дескрипторов
  • --with-openssl= (в CentOS надо указать /usr/kerberos)

Ключи запуска squid

  • -a порт (TCP порт для входных HTTP запросов, 3128)
  • -d (отладка на stderr)
  • -f имя-файла-конфигурации
  • -h (help)
  • -k (послать команду работающему серверу, номер процесса из squid.pid?)
    • reconfigure (посылка сигнала HUP — разобрать заново файл конфигурации)
    • rotate (rotate журналы; сигнал USR1)
    • shutdown (сигнал TERM)
    • interrupt (shutdown без паузы; сигнал INT)
    • kill (даже не закрыв журналы; сигнал KILL)
    • debug (начать/закончить полную трассировку; сигнал USR2)
    • check (сигнал ZERO)
    • parse (проверить синтаксис squid.conf)
  • -l facility (источник для записей в syslog)
  • -s (level 0 debugging to syslog в дополнение к выводу в файл)
  • -u порт (UDP порт для входных ICP запросов, 3130)
  • -v (напечатать версию параметры сборки)
  • -z (создать дисковый кеш при первом запуске)
  • -C (не отлавливать сигналы к завершению)
  • -D (не делать DNS-тест при запуске)
  • -F (восстановление после сбоя не в фоновом режиме)
  • -N (не становиться фоновым процессом)
  • -R (не устанавливать REUSEADDR на порту)
  • -V (поддержка виртуальных хостов для режима акселерации — аналогично "httpd_accel_host virtual" в конфигурационном файле)
  • -X (включить отладку при разборе конфигурационного файла)
  • -Y (более быстрое восстановление после сбоев)

Формат squid.conf

    • сетевые параметры сервера
      • http_port 3128 (порт для запросов клиентов); в версии 2.3 можно указывать перед портом имя хоста или IP-адрес
      • https_port порт (обработка SSL/TLS запросов в режиме акселерации; в качестве опций указывается файл с сертификатом, приватный ключ, версия SSL/TLS, тип шифрования)
      • ssl_unclean_shutdown off
      • icp_port 3130 (если соседей не ожидается, то поставить "icp_port 0")
      • htcp_port 4827 (порт для общения с соседями — ICP — через TCP, нужен "--enable-htcp" в configure, иначе его нельзя устанавливать даже в 0)
      • mcast_groups 239.128.16.128 224.0.1.20 (к каким multicast группам подсоединяться для получения ICP, если используется multicast; для раздачи используется cache_peer; не трогать)
      • tcp_incoming_address 0.0.0.0 (по какому адресу принимать входные пакеты, если хост имеет несколько интерфейсов; в 2.3 убран)
      • tcp_outgoing_address 0.0.0.0 [[!]acl] (при посылке ставить указанный адрес в качестве исходного; в 2.5 появилась возможность задавать ACL)
      • udp_incoming_address 0.0.0.0 (по какому адресу принимать пакеты ICP)
      • udp_outgoing_address 255.255.255.255 (с какого адреса должны выходить пакеты ICP; по умолчанию — с того же, что и приходят)
      • tcp_outgoing_tos TOS-биты [!]acl (установка битов приоритета траффика в зависимости от ACL)
      • tcp_recv_bufsize 0 bytes (0 означает, что надо использовать размер буфера по умолчанию)
      • incoming_icp_average 6
      • incoming_http_average 4
      • incoming_dns_average 4
      • min_icp_poll_cnt 8
      • min_http_poll_cnt 8
      • min_dns_poll_cnt 8
    • соседи (neighbour, peer)
      • cache_peer hostname type proxy-port icp-port options(каждый сосед описывается отдельной строкой)
        • type
          • parent — старший в иерархии (если запрос отсутствует в локальном кеше, то он направляется к parent, тот — при отсутствии в своем кеше — пересылает запрос дальше и возвращает готовый ответ подчиненному в иерархии; если squid получает от parent TCP_DENIED, то он лезет напрямую)
          • sibling — одного уровня (если запрос отсутствует в локальном кеше, то он направляется к sibling, тот — при отсутствии в своем кеше — сразу возвращает сообщение об этом, ничего не предпринимая)
          • multicast
        • options
          • proxy-only (объекты, взятые с этого узла не хранить у себя)
          • weight=число (число от 1, по умолчанию — 1, чем больше, тем больше приоритет при прочих равных)
          • ttl=число (TTL в посылаемых ICP пакетах при использовании multicast)
          • no-query (не посылать ICP запросы — только принимать)
          • default (самый старший в иерархии, используемый как last-resort)
          • round-robin (определяет множество старших кешей, используемых по очереди)
          • multicast-responder (данный сосед является членом multicast группы, запрос к нему посылается через multicast, но запросы от него будут обрабатываться и так)
          • closest-only (при ответах ICP_OP_MISS не передавать FIRST_PARENT_MISS)
          • no-digest (не запрашивать от этого соседа cash-digest)
          • no-netdb-exchange (не запрашивать у этого соседа ICMP RTT — round trip time — NetDB)
          • no-delay (при перегрузке delay pool не лезть к этому соседу)
          • login=user:password (если старший в иерархии proxy требует аутентификации)
          • login=PASS (передавать имя/пароль пользователя вышестоящему прокси)
          • connect-timeout=
          • digest-url=URL
          • allow-miss (передавать соседям запросы не только в режиме only-if-cached; может порождать циклы)
          • max-conn=число (максимальное число соединений с данным соседом)
      • cache_peer_domain host domain [domain…]
        ограничить запросы к данному соседу данным списком доменов (можно использовать отрицание с помощью восклицательного знака)
      • neighbor_type_domain parent | sibling domain
        модифицировать тип соседа при запросах к данному домену
      • icp_query_timeout milisec (по умолчанию определяется автоматически для каждого соседа)
      • maximum_icp_query_timeout milisec
      • mcast_icp_query_timeout milisec (по умолчанию 2000 ms, ожидание ответа на регулярные multicast опросы)
      • dead_peer_timeout 10 seconds (как долго ждать прежде, чем объявить соседа "мертвым")
      • hierarchy_stoplist (список строк — через пробел, — при встрече которых в URL, запрос будет направлен сразу напрямую, а не "по соседям"; по-умолчанию — "cgi-bin ?")
      • minimum_direct_hops 4 (If using the ICMP pinging stuff, do direct fetches for sites which are no more than this many hops away)
      • minimum_direct_rtt400 (при использовании ICMP ping для вычисления близости серверов, использовать только тех соседей, которые отзываются быстрее указанного числа милисекунд)
      • icp_hit_stale on|off (возвращать ли ответ ICP_HIT для зачерствевших объектов; по умолчанию — off)
      • netdb_low 900
      • netdb_high 1000 (нижняя верхняя границы для базы данных измерения ICMP)
      • netdb_ping_period 5 minutes (минимальное время между ping-ами в одну и ту же сеть)
      • query_icmp on|off (должны ли соседи включать в ICP ответы ICMP данные; соответствующие данные собираются если сосед сконфигурирован с --enable-icmp, в это случае он измеряет путь до http-сервера помощью ICMP, выключен по умолчанию)
      • test_reachability on|off (если включить, то ответ ICP_MISS будет заменяться на ICP_MISS_NOFETCH если сервер отсутствует в ICMP базе данных или RTT равен нулю)
      • retry_on_error off (повторять запрос к соседу после получения сообщения об ошибке)
      • mcast_miss_addr адрес (по этому multicast адресу посылается сообщение при каждом cache miss)
      • mcast_miss_port порт
      • mcast_miss_encode_key ключ
      • nonhierarchical_direct on (запросы из hierarchy_stoplist и некешируемых типов будут направляться к первоисточнику, off — к родительскому кешу)
      • prefer_direct on (если никакая методика — ICP, HTCP, digest — не указали родительский кеш, то напрвлять запрос к первоисточнику; off — к родительскому кешу)
    • размер кеша и параметры кеширования, параметры запросов
      • cache_mem 8 MB (объем оперативной памяти, используемой для хранения обрабатываемых объектов; если требуется, то этот лимит может быть слегка превышен; если осталось свободное место, то оно используется для хранения наиболее часто используемых объектов отрицательных ответов; память используется и под другие нужды — индекс объектов — на каждый объект требуется около 100 байт ОП; если средний размер объекта 9КБ (в очень старом руководстве говорится — 20КБ, в более новом — 13КБ, у меня — 9КБ, как измельчал интернет!),  то на 8ГБ диска понадобится 100МБ ОП только под индекс объектов; еще понадобится память под кеш IP-адресов, fqdn-кеш и др.)
      • cache_dir тип имя-директории Mbytes Level-1 Level2[read-only] [max-size=число] (определяет имя, размер и количество поддиректорий на первом и втором уровне кеша на диске — каждый кешируемый объект кладется в отдельный файл, файлы не сваливаются в одно место, а разносятся в двухуровневой иерархии директорий; можно иметь несколько директорий под кеш — особенно полезно иметь их на разных дисках; эксперимент показал, что при кэше в 700 МБ используется только 2 директории первого уровня; при стандартной структуре директорий кеша в него "с комфортом" влезает миллион объектов (9 GB), если их больше, то надо увеличить число директорий верхнего уровня; тип кеша указывается начиная с версии 2.3: ufs (unix file system), aufs (async ufs), diskd (внешние процессы для избежания блокировки squid на дисковом вводе/выводе); директорию верхнего уровня надо создавать самому; поддиректории создаются командой squid -z)
      • cache_swap_log полное-имя-файла (это не журнал, а оглавление кеша на диске)
      • cache_swap_high 95 (при достижении данного уровня заполнения кеша — в процентах — начинается ускоренный процесс удаления старых объектов; для большого кеша эти границы надо поднять, 5% от 8 GB — это 400 MB!)
      • cache_swap_low 90 (процесс удаления старых объектов заканчивается, если достигнут данный уровень)
      • maximum_object_size 4096 KB (максимальный размер кешируемого объекта; если его увеличишь, то съэкономишь трафик, если уменьшишь, то странички быстрее грузиться будут — хотя можно просто увеличить размер кеша; максимальный размер объекта, который удалось за раз скачать по модему — 8 MB)
      • minimum_object_size 0 KB (файлы меньшего размера не сохраняются; введено в 2.3-STABLE3
      • maximum_object_size_in_memory 8 KB
      • ipcache_size 1024 (размер кеша для IP адресов)
      • ipcache_high 95 и ipcache_low 90 (верхний и нижний уровень заполнения IP кеша для алгоритма удаления старых объектов по LRU)
      • fqdncache_size 1024 (размер кеша fqdn — полных доменных имен)
      • cache_replacement_policy policy (алгоритмы замещения объектов в кеше: lru, heap GDSF, heap LFUDA или heap LRU; действует на последующие cache_dir)
      • memory_replacement_policy policy
      • memory_pools on|off (по умолчанию, однажды захваченная, но ныне не используемая память не отдается обратно в систему, off позволяет освобождать ее)
      • memory_pools_limit байт (максимальное количество неиспользуемой памяти, которое squid будет придерживать; если 0, то придерживать все, что было захвачено; см. memory_pools)
      • request_size 100 KB (максимально возможный размер запроса; если клиент загружает файлы с помощью метода POST, то необходимо увеличить допустимый размер) — убран в версии 2.3
      • request_header_max_size 10KB (появился в 2.3)
      • request_body_max_size 1 MB (появился в 2.3; в новых версиях по умолчанию — без ограничений)
      • reply_header_max_size 20 KB (появился в 2.5)
      • reply_body_max_size 0 allow | deny all (появился в 2.3; в версии 2.4 появилась возможность задать ACL)
      • refresh_pattern [-i] regex MIN_AGE percent MAX_AGE[options]
        используется, чтоб определить не устарел ли объект в кеше. Имя объекта сравнивается по очереди с регулярными выражениями в строках refresh_pattern до первого совпадения, параметры из соответствующей строк используются в алгоритме проверки "на свежесть". По умолчанию, регулярные выражения различают прописные/строчные буквы, чтобы игнорировать это различие, используется ключ "-i". MIN_AGE и MAX_AGE- время в минутах (MAX_AGE также используется, если приходится делать запрос к соседям (Cache-Control: Max-age=nnn) ). procent — целое число. OBJ_DATE — время извлечения объекта с исходного сервера (заголовок HTTP Date). OBJ_LASTMOD — время последнего изменения объекта (заголовок HTTP Last-Modified). OBJ_AGE = NOW — OBJ_DATE (как давно мы его извлекли). LM_AGE = OBJ_DATE — OBJ_LASTMOD (насколько стар был объект в момент извлечения). LM_FACTOR = OBJ_AGE / LM_AGE. CLIENT_MAX_AGE — максимальный возраст объекта, который удовлетворит клиента (HTTP/1.1 Cache-Control: ). EXPIRES — срок хранения объекта (из ответа сервера, если есть). В общих чертах алгоритм описан так:
        если (определен CLIENT_MAX_AGE)
        если (OBJ_AGE > CLIENT_MAX_AGE)
        то (объект старый)
        если (определен EXPIRES) {
        если ( EXPIRES <= NOW)
        то (объект старый)
        иначе (объект свежий)
        }
        если (AGE > MAX_AGE) то (объект старый)
        если (OBJ_DATE > OBJ_LASTMOD ) {
        если (LM_FACTOR меньше PERCENT) то (объект свежий)
        иначе (объект старый)
        }
        если (AGE <= MIN_AGE) то (объект свежий)
        (объект старый)
        
        По умолчанию (я эти числа изрядно увеличиваю):
        1. refresh_pattern ^ftp: 1440 20% 10080
        2. refresh_pattern ^gopher: 1440 0% 1440
        3. refresh_pattern . 0 20% 4320
        options
        • override-expire — нарушение стандарта HTTP! — использовать min даже если явно задан expire
        • override-lastmod — использовать min даже для недавно модифицированных объектов
        • reload-into-ims — нарушение стандарта HTTP! — преобразует клиентские запросы типа no-cache в If-Modified-Since
        • ignore-reload — нарушение стандарта HTTP! — игнорировать заголовки no-cache или reload в запросах клиентов
      • replacement_policy GDSF | LFUDA (частотные алгоритмы замещения объектов в кеше вместо LRU; требуется --enable-heap-replacement при сборке; в версии 2.4 расслоился на cache_replacement_policy и memory_replacement_policy)
      • reference_age 1 year (максимальное время хранения неиспользуемого объекта до его удаления по LRU алгоритму; если места на диске не хватает, то автоматически уменьшается)
      • quick_abort_min 16 KB (если клиент оборвал запрос, а осталось докачать всего min KB, то squid докачает)
      • quick_abort_max 16 KB (если клиент оборвал запрос, и осталось качать больше max KB, то прекратить)
      • quick_abort_pct 95 (если клиент оборвал запрос, а уже получено больше чем pct процентов объекта, то докачать)
      • read_ahead_gap 16 KB (размер буфера упреждающего чтения)
      • negative_ttl 5 minutes (некоторые негативные ответы тоже кешируются — "connection refused "и "404 not found" — ttl задает их время жизни в кеше; по-моему, хватит и 1 минуты)
      • range_offset_limit 0 KB (если клиент делает запрос с середины объекта, то offset_limit равный -1 вынуждает squid загрузить весь объект в кеш до того как начать передачу клиенту — скажем 17го мегабайта ;) -; offset_limit равный 0 означает. что squid никогда не будет грузить больше, чем клиент запросил; offset_limit равен определенному числу означает, что squid будет грузить весь объект, если начало запроса меньше этого числа)
      • no_cache deny имя-ACL (определяет список объектов, которые не будут кешироваться; по-умолчанию, кешируется все, хотя рекомендуется определить "acl QUERY urlpath_regex cgi-bin \?" запретить его кеширование "no_cache deny QUERY"; на самом деле cgi-bin и query все-таки кешируются, хотя и слабо)
      • store_avg_object_size 13 KB (предполагаемый средний размер объекта, используемый для расчетов; у меня — 9КБ (12 КБ, если не кешировать маленькие объекты); не д.б. вдвое больше реального или возникнут проблемы)
      • store_objects_per_bucket 20 (число объектов на хеш-корзину, чем меньше, тем больше будет создано корзин)
      • always_direct allow|deny [!]aclname … (запросы, удовлеворяющие данным acl не кешировать, а всегда направлять к первоисточнику)
      • never_direct allow|deny [!]aclname
      • store_dir_select_algorithm least-load | round-robin (алгоритм выбора директории хранения для кешируемого объекта)
    • сообщения об ошибках, журналы и мониторинг
      • logformat имя спецификация-формата (позволяет описать формат журнала запросов; предопределены форматы squid, squidmime, common и combined)
      • cache_access_log /usr/local/squid/logs/access.log (журнал запросов к кешу; до версии 2.6)
      • access_log /usr/local/squid/logs/access.log [имя-формата [ACL …]] (журнал запросов к кешу; в версии 2.6)
      • cache_log /usr/local/squid/logs/cache.log (журнал запусков процессов)
      • cache_store_log /usr/local/squid/logs/store.log (журнал записи объектов в дисковый кеш; авторы рекомендуют поставить none, т.к. программ анализа все равно нет
      • emulate_httpd_log off | on (эмулировать или нет Common Log Format; лучше использовать родной формат)
      • log_ip_on_direct on | off (записывать в журнале IP-адрес сервера или соседа вместо имени)
      • log_mime_hdrs off (в журнал access записываются переданные полученные HTTP-заголовки — очень интересная информация, но больно длинная)
      • useragent_log имя-файла (по-умолчанию none; в этот файл будут записываться строки User-agent из HTTP-заголовков; необходима компиляция с "--enable-useragent_log")
      • referer_log имя-файла (по-умолчанию none; в этот файл будут записываться строки Refererиз HTTP-заголовков; необходима компиляция с "--enable-referer_log")
      • debug_options раздел,уровень (уровень отладки; волшебное слово ALL для всех разделов; по умолчанию ALL,1; уровень от 1 до 9 — наивысший; перечень разделов приведен в doc/debug-sections.txt)
      • log_fqdn off (определять и записывать в журнал полные доменные имена источника запроса, вносит дополнительную задержку в обработку запроса)
      • client_netmask 255.255.255.255 (при записи в журнал можно обнулять некоторые биты IP-адреса, чтоб защитить частную жизнь клиента)
      • log_icp_queries on|off (записывать ли в журнал ICP-запросы)
      • logfile_rotate 10 (squid -k rotate переименовывает журнальные файлы, данный параметр задает количество старых копий для ротации)
      • err_html_text строка (подставляется в шаблоны текстов сообщений об ошибках — лежат в директории error — вместо %L)
      • deny_info err_page_name acl (запросы, не прошедшие проверку в http_access, проверяются на соответствие acl выдается соответствующее сообщение об ошибке из файла