Главная > Програмное обеспечение > для Internet >
SQUID Часто задаваемые вопросы [4/9]

3 Конфигурирование

3.1 Как сделать иерархию прокси?

Чтобы разместить кеш в иерархии, нужно воспользоваться cache_host директивой в squid.conf, чтобы указать родительский и братский (или сестринский :) - т.е. одного уровня) узел.

Например, приведенный нижеsquid.conf на childcache.example.com сконфигурирован так, что его кеш получает данные с одного родительского и с двух братских кешей:

        #  squid.conf - On the host: childcache.example.com
        #
        #  Format is: hostname  type  http_port  udp_port
        #
        cache_host parentcache.example.com   parent  3128 3130
        cache_host childcache2.example.com   sibling 3128 3130
        cache_host childcache3.example.com   sibling 3128 3130
Директива cache_host_domain позволяет указывать для каждого домена как братский, так и родительский кеш:
        #  squid.conf - On the host: sv.cache.nlanr.net
        #
        #  Format is: hostname  type  http_port  udp_port
        #

        cache_host electraglide.geog.unsw.edu.au parent 3128 3130
        cache_host cache1.nzgate.net.nz          parent 3128 3130
        cache_host pb.cache.nlanr.net   parent 3128 3130
        cache_host it.cache.nlanr.net   parent 3128 3130
        cache_host sd.cache.nlanr.net   parent 3128 3130
        cache_host uc.cache.nlanr.net   sibling 3128 3130
        cache_host bo.cache.nlanr.net   sibling 3128 3130
        cache_host_domain electraglide.geog.unsw.edu.au .au
        cache_host_domain cache1.nzgate.net.nz   .au .aq .fj .nz
        cache_host_domain pb.cache.nlanr.net     .uk .de .fr .no .se .it
        cache_host_domain it.cache.nlanr.net     .uk .de .fr .no .se .it
        cache_host_domain sd.cache.nlanr.net     .mx .za .mu .zm
Вышеприведенная конфигурация описывает, что кеш будет использовать pb.cache.nlanr.net и it.cache.nlanr.net для доменов uk, de, fr, no, se и it, sd.cache.nlanr.net для доменов mx, za, mu и zm, и cache1.nzgate.net.nz для доменов au, aq, fj, и nz.

3.2 Как мне подключиться к иерархии NLANR?

Существует простой набор правил подключения к иерархии кешей NLANR.

3.3 Почему я должен подключаться к иерархии NLANR?

Иерархия NLANR может являться начальным источником родительских и братских кешей. Подключение к системе глобальных кешей NLANR чаще всего сопровождается повышением производительности.

3.4 Как мне зарегистрировать свой кеш на NLANR?

Просто включите эти опции в своем squid.conf и все:
cache_announce 24
announce_to sd.cache.nlanr.net:3131
Примечание: анонсирование кеша это не тоже самое что вступление в иерархию NLANR. Вы можете вступить в иерархию NLANR без регистрации, и можно зарегистрироваться без вступления в иерархию кешей NLANR.

3.5 Как мне найти ближайшие ко мне кеши и организовать родительские/дочерние/братские отношения с ними?

Посетите NLANR регистрацонную БД кешей и поищите ближайший. Да, и помните, что если кеш зарегистрирован в базе это еще не значит что он захочет быть Вашим родителем/дочерью/братом. Но спросить всегда можно...

3.6 Что такое режим httpd-ускорителя?

Часто люди испытывают трудности в понимании ускорителей и кеширующих прокси, обычно приводящих к путанице в понимании "приходящих" и "исходящих" данных. Рассмотрим это в терминах запросов (например, исходящий запрос - это с локальной машины в большой плохой Интернет) Данные принимаемые в ответ - это приходящий. Обратный смысл получается если его рассматривать как "запрос для приходящих данных".

Ускоритель кеширует приходящие запросы для исходящих данных (например, тех что Вы опубликовали на своем сервере). Тем самым он забирает загрузку с Вашего HTTP сервера и внутренней сети. Вы убираете сервер с 80 порта (или какой он у Вас там), и подставляете ускоритель, который пробрасывает HTTP данные с "реального" HTTP сервера (только ускоритель должен знать где реальный сервер). Внешний мир не видит ни какой разницы (кроме разве увеличения скорости доступа).

Кроме разгрузки реального web сервера, ускоритель может находиться снаружи брандмауэра или любого другого узкого места в сети и общаться с HTTP серверами внутри, уменьшая траффик через узкое место и упрощая конфигурацию. Два или более ускорителя соединенные через ICP могут увеличить скорость и устойчивость web сервера к любому одиночному сбою.

Редиректор Squid может заставить ускоритель работать как одну связную машину для нескольких серверов. Если Вам нужно перенести части Вашей файловой системы с одного сервера на другой, или если отдельно администрируемые HTTP сервера должны логически появляться под единой URL иерархией, ускоритель сделает это.

Если Вы хотите лишь кешировать "остальной мир" для увеличения эффективности доступа локальных пользователей в Интернет, то режим ускорителя следует отключить. Компании, которые держат свой web-сервер используют ускоритель для повышения эффективности доступа к нему. Те же, кому важен эффективный доступ локальных пользователей в Интернет используют кеширующий прокси. Многие, и мы в том числе пользуются и тем и этим.

Сравнение кеша Squid и его аналога Harvest показывает увеличение на порядок производительности первого по сравнению с CERN и другими широко распространнеными кеширующими программами. Это преимущество позволяет кешу работать как httpd ускорителю, кешу сконфигурированному как главный web-сервер (на 80 порту), перенаправляя неправильные ссылки на реальный httpd (на 81 порт).

В такой конфигурации администратор web узла переносит все не подлежащие кешированию URL на 81 порт httpd. Кеш обслуживает ссылки на кешируемые объекты, такие как HTML страницы и GIF-ы, а реальный httpd (на 81 порту) - все некешируемые, например запросы и cgi-bin программы. Если пользование сервером напрямую зависит от кешируемых объектов, то такая конфигурация может существенно снизить загрузку web-сервера.

При этом помните, что лучше всего не запускать squid как httpd-ускоритель и как кеширующий прокси одновременно, так как они имеют различные рабочие режимы. Более высокую производительность Вы получите запуская их на разных машинах. Все же Squid может одновременно работать и как httpd-ускоритель и как кеширующий прокси, если напротив httpd_accel_with_proxy Вы поставите on в своем squid.conf.

3.7 Как мне задать, чтобы Squid работал за брандмауэром?

Когда Вы находитесь за брандмауэром Вы не можете напрямую соединяться с внешним миром, так что необходимо использовать родительский кеш. Squid не использует ICP запросы если он за брандмауэром, или если только один родитель.

Нужно воспользоваться директивой inside_firewall в squid.conf чтобы задать список внутренних по отношению к брандмауэру доменов. Например:

inside_firewall example.com

Можно задать несколько:

inside_firewall example.com example.org example.net

Использование inside_firewall приводит к двум путям выбора сервера. Объекты не подпадающие ни под один из перечисленных доменов будут рассматриваться вне брандмауэра. Для этого же случая:

  • Не будет DNS запросов для URL этого хоста.
  • Кеш будет всегда забирать объект с одного из родительского или братского кеша.
В особом случае можно указать в качестве домена none чтобы все запросы обслуживались братскими или родительскими кешами.

3.8 У меня несколько dnsserver процессов, которые не используются, могу я уменьшить их число в squid.conf?

Процессы dnsserver используются squid из-за того, что процесс преобразования имен хостов в IP-адреса (gethostbyname(3)) блокируется (то есть этот процесс должен дождаться ответа). Так как процесс squid один, то каждый, кто к обращается к кешу должен ждать каждый раз время необходимое на преобразование. Вот почему dnsserver это отдельный процесс, так что он может блокироваться без блокировки самого squid.

Поэтому очень важно чтобы было достаточно dnsserver процессов чтобы обработать каждое обращение, в противном случаеsquid может неожиданно повисать. На практике надо определить максимальное число dnsserver-ов, которые могут понадобиться squid, и добавить еще два на всякий случай. Другими словами, если Вы видели в работе только три dnsserver процесса, оставьте как минимум пять. И помните, чтоdnsserver маленький и при простое особо не загружает систему.

3.9 Мы бы хотели использовать Squid, но нам нужно использовать socks для подключения к внешнему миру. Поддерживает ли Squid Socks?

From: carson@lehman.com
Date: Sat, 25 Jan 1997 11:50:59 -0500
Subject: Re: SOCKS

Чтобы пользоваться socks5, не требуется никак изменений кода Squid. Все что надо, это добавить строку -Dbind=SOCKSbind etc в строку компиляции и -lsocks в строку линков.

3.10 Как Squid решает когда обновить объект кеша?

Kolics Bertold сделал прекрасную блок-схему изображающую этот процесс. 


Страница 1 2 3 4 5 6 7 8 9 <<< Предыдущая Следущая >>>


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2003 Olexandr Slobodyan.
Сайт создан в системе uCoz