Тюнинг и закалка Squid’а

Автор статьи не я. Это всего лишь мой перевод этой статьи. Некоторые абзацы я пропущу, да простит меня автор статьи. Итак:

Тюнинг и закалка Squid’а является темой данной статьи, где под тюнингом мы будем подразумевать некоторое ускорение работы данного ПО, а под закалкой — обеспечение более безопасной и менее уязвимой работоспособности прокси-сервера. Стандартная установка Squid’а на Debian-сервер имеет множество включенных фич, большинство из которых просто-напросто не используется. Собственно их мы и хотим отключить. Также возможны ситуации, при которых нам нужно использовать Squid, но мы не хотим чтобы он кешировал — мы и на это обратим внимание.

Тюнинг

Тюнинг Squid’а позволит нам немного ускорить его работоспособность. Итак, без лишних хлопот, давайте сперва взглянем на некоторые директивы из конфигурационного файла squid.conf:

pipeline_prefetch on
shutdown_lifetime 1 second

Где pipeline_prefetch позволит нам ускорить производительность конвейерных запросов так, как-будто они не проксируются. Следующая директива — shutdown_lifetime — сэкономит нам кучу времени, которое мы тратим на ожидание остановки или перезапуска Squid’а, а в процессе тюнинга нам придется это сделать не один раз.

Несмотря на то, что часто под Squid’ом подразумевается кеширование, существует ряд причин, согласно которым нам не нужна его способность кешировать. Существует два способа обойти кеширование:

  1. Запретить кеширование для всех соединений:
    acl all src 0.0.0.0/0.0.0.0
    no_cache deny all

    Таким образом не будут удовлетворены запросы к кешу и не будут кешироваться ответы. Обратите внимание, что первая приведенная строчка может уже находится в вашем конфигурационным файле.

  2. Если вы используете parent-прокси, то есть возможность указать опцию proxy-only, чтобы предотвратить кеширование на локальном прокси данных, полученных от удаленного. Пример:
    cache_peer proxy.isp.com parent 8080 0 proxy-only

Наконец, можно выключить логирование. На системах, основанных на Debian’е, достаточно выключить опции cache_access_log и cache_store_log:

cache_access_log none
cache_store_log none

Закалка

Когда идет речь о закалке, подразумевается выключение всех фич, которые не используются нашим прокси-сервером, и о запрете доступа к прокси. Фичи, которые не используются, зачастую это: ICP и HTCP (их предназначение — связь с другими кешами в иерархии). В большинстве случаев нам это не нужно:

icp_port 0
htcp_port 0
icp_access deny all
htcp_access deny all

Если нам нет надобности в SNMP — можно выключить и его. В системах, основанных на Debian, по-умолчанию SNMP отключен.

snmp_port 0
snmp_access deny all

Напоследок, нам наверняка нужно запретить доступ к прокси: определяем список управления доступом (access control list a.k.a acl) и или разрешаем, или запрещаем доступ директивой http_access.
К примеру, если наша локальная сеть имеет адреса 172.16.0.0/24 и 172.16.1.0/24, и нам необходимо разрешить им доступ к прокси, то добавляем в squid.conf следующие строки:

acl LAN src 172.16.0.0/24 172.16.1.0/24
http_access allow LAN

Если кто-нибудь извне (не находящийся в указанных сетях) попробует достучаться к прокси-серверу — он получит уведомление о том, что у него нет доступа.

Заключение

Конечно, данная статья является всего лишь “вершиной айсберга”. По теме тюнинга и закалки есть еще уйма материалов, сведений и нюансов, которые еще предстоит исследовать. Некоторые идеи могут включать в себя оценку наших действий — быстрее ли работает кеширование?, или учитывать другие нюансы вроде безопасности сети и конфигурации файервола. В любом случае, я надеюсь, что вы получили обзор всех возможностей.

The End

Примечание: извиняюсь за мой Engrish, переводил как мог. Критику, замечания и предложения с радостью приму в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *