Шрифт:
Интервал:
Закладка:
Нет смысла устанавливать прокси на своей домашней машине, так как функции кэширования выполняет сам браузер. Прокси-сервер стоит применять лишь в том случае, если в вашей сети есть несколько компьютеров, которым нужен выход в Интернет. Если один из них уже запрашивал какой-то интернет-ресурс, то следующий пользователь, обратившийся за этим же ресурсом, получит ответ не из Интернета, а из кэша прокси- сервера, то есть значительно быстрее.
SQUID — это нечто большее, чем просто посредник. Это своеобразный стандарт кэширования информации в сети Интернет. В силу повсеместной распространенности SQUID, в книге я уделил его конфигурированию большое внимание.
Прокси-сервер SQUID образуют несколько программ, в числе которых сам демон squid, а также программа dnsserver — программа обработки DNS-запросов. Когда запускается squid, то сначала он запускает заданное количество процессов dnsserver, каждый из которых работает самостоятельно и может осуществлять только один поиск в системе DNS. За счет этого уменьшается общее время ожидания ответа DNS.
18.2. Установка SQUID
Я использую версию squid 2.5. Пакет squid входит в состав современных дистрибутивов, а если его у вас почему-то нет, то скачать можно с www.squid-cache.org.
При сборке SQUID из исходных кодов первым шагом должна быть команда
# ./configure --prefix=/usr/local/squid
SQUID будет установлен в каталог, заданный ключом prefix. Другие ключи сценария configure перечислены в таблице 18.1.
Ключи сценария configure Таблица 18.1
Ключ Назначение --enable-icmp Измерить путь до каждого HTTP-сервера при запросах с помощью ICMP --enable-snmp Включить SNMP-мониторинг --enable-delay-pools Управление трафиком --disable-weep Отключить Web Cache Coordination Protocol --enable-kill-parent-hack Более корректный shutdown --enable-splaytree Позволяет увеличить скорость обработки ACL18.3. Настройка SQUID
Сервер SQUID использует файл конфигурации squid.conf, который обычно располагается в каталоге /etc/squid (или /usr/local/squid/etc — более ранние версии). Подробнее на отдельных настройках мы остановимся чуть позже. А сейчас просто по шагам произведем настройку SQUID. Отредактируйте в этом файле следующие строки.
Укажите прокси-провайдера (тот сервер, который станет вашим «соседом» (neighbour, peer)):
cache_peer proxy.isp.ru
Установите объем памяти, разрешенный для кэша squid, в байтах, и каталог для дискового кэша:
cache_mem 65536
cache_dir ufs /usr/local/squid/cache 1024 16 256
где 1024 — количество мегабайтов, отводимое под кэш в указанном каталоге. В этом каталоге будут храниться кэшированные файлы. Стоит ли говорить, что если у вас несколько жестких дисков, то кэш нужно разместить на самом быстром из них.
Укажите узлы, которым разрешен доступ к прокси-серверу:
acl allowed_hosts src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
Укажите разрешенные SSL-порты:
acl SSL_ports port 443 563
Запретите метод CONNECT для всех портов, кроме указанных в acl SSL_ports:
http_access deny CONNECT !SSL_ports
Запретите доступ всем, кроме тех, кому можно:
http_access allow localhost
http_access allow allowed_hosts
http_access allow SSL_ports http_access deny all
Пропишите пользователей, которым разрешено пользоваться SQUID (в рассматриваемом примере это den, admin и developer):
ident_lookup on
acl allowed_users user den admin developer
http_access allow allowed_users
http_access deny all
Тэги maximum_object_size и maximum_object устанавливают ограничения на размер передаваемых объектов.
Ниже приведен пример запрета доступа к любому URL, который соответствует шаблону games, и разрешения доступа ко всем остальным:
acl GaMS url_regex games
http_access deny GaMS
http_access allow all
18.4. Запуск SQUID
Первый раз squid нужно запускать с ключом -z, чтобы создать и очистить каталог кэша:
# /usr/local/squid/bin/squid -z
Еще несколько полезных ключей, с которыми можно запускать squid, перечислены в таблице 18.2.
Ключи запуска squid Таблица 18.2
Ключ Назначение -а порт Задает альтернативный порт для входящих HTTP-запросов -d Включает ражим вывода отладочной информации в стандартный поток ошибок -f файл Задает альтернативный файл конфигурации, который должен будет использоваться вместо стандартного squid.conf -h Выдает справочную информацию -k reconfigure Посылает сигнал HUP, что приводит к тому, что SQUID заново прочитает свой конфигурационный файл -k shutdown Завершение работы прокси-сервера. При этом он подождет, пока будут завершены все соединения -k interrupt Немедленно завершить работу прокси-сервера, без ожидания завершения соединений -k kill Завершение без закрытия журналов -u порт Задает альтернативный порт для входящих ICP-запросов -s Включает журналирование с помощью syslog -v Выдает информацию о версии SQUID -z Очищает каталог кэша -D Запрещает DNS-тест при запуске -N Запрещает становиться демоном (фоновым процессом) -Y Более быстрое восстановление после сбоев18.5. Расширенные настройки SQUID. Конфигурационный файл squid.conf
18.5.1. Параметры сети
В файле squid.conf могут быть заданы следующие параметры сети:
♦ http_port — порт для запросов клиентов. С этого порта прокси-сервер будет ожидать и обрабатывать запросы клиентов. Значение по умолчанию равно 3128;
♦ icp_port — порт для общения с соседями через ICP. Если «соседей» (peer) нет, то установите icp_port 0. По умолчанию используется значение 3130. При использовании этого параметра нужно установить ключ --enable-htcp для директивы htcp_port 4827;
♦ tcp_outgoing_address — при отправлении информации указанный адрес будет использован в качестве исходного. Значение по умолчанию: tcp_outgoing_address 255.255.255.255;
♦ udp_outgoing_address — то же самое, что и предыдущая директива — но только для ICP. Значение по умолчанию: udp_outgoing_address 255.255.255.255. То же, но для ICP при приеме — директива udp_incoming_address со значением по умолчанию 0.0.0.0;
♦ passive_ftp on | off — по умолчанию этот режим включен, но если прокси-сервер находится за брандмауэром, то параметр passive_ftp нужно выключить.
18.5.2. Параметры соседей
«Соседи» — это другие кэширующие серверы, в кэшах которых SQUID ищет запрошенный ресурс перед тем, как обратиться к нему напрямую. Так, SQUID-сервер локальной сети может обратиться к серверу провайдера, региона и т.д. в расчете на то, что чем больше пользователей, тем больше шанс найти копию запрошенных данных ближе, чем по оригинальному адресу. Существует два типа «соседей»:
♦ parent (старший): если запрошенных данных не оказалось в кэше у parent, тот пересылает запрос дальше и возвращает подчиненному готовый ответ. Если SQUID получает отказ (TCP_DENIED) от parent, то обращается к ресурсу напрямую;
♦ sibling (равный): если запрошенных данных не оказалось в кэше у sibling, то он просто возвращает сообщение об этом, не предпринимая никаких дальнейших действий.
Каждый «сосед» прописывается отдельной строкой следующего формата:
cache_peer hostname type proxy-port icp-port options
где: hostname — имя узла-«соседа»;
type — тип соседа: parent — старший, sibling — одного уровня;
proxy-port — порт прокси-сервера;
icp-port — порт ICP;
options — параметры.
18.5.3. Управление кэшем
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение