Экономим каждый байт опубликовано admin числа 30/09/02

В последнее время во многих городах (и особенно в Москве) стали широко распространяться высокоскоростные подключения основанные на Ethernet (домовые сети), кабельных модемах (сети кабельного телевидения), а так же на ASDL (технология высокоскоростного ассиметричного доступа), которые, однако, обладают серьезным недостатком — пользователь такого соединения обычно сильно ограничен по объему так называемого «входящего» трафика, т.е. по объему скачиваемой информации.
Не секрет, что большинство пользователей имеет определенные предпочтения при просмотре сайтов — одни и те же сайты посещаются изо дня в день в поисках свежей информации опубликованной на их страницах (например http://www.softerra.ru). При этом раз за разом закачивается большое количество статичной информации — разного рода плашки, графические заголовки и т.п. Многие немедленно мне возразят — а как же встроенный кеш браузера? Да пожалуй никак, отвечу я — к сожалению способы кеширования у браузеров настолько далеки от совершенства, что не выдерживают никакой критики. А если у вас дома или в офисе к Интернету подключен не один компьютер, а несколько?
Надеюсь теперь многие поняли о чем пойдет речь в этой статье — о решении проблемы кеширования входящего трафика кардинальным образом, а именно при помощи домашнего прокси-сервера. Итак если вы хотите снизить объем входящего трафика и/или у вас дома или в офисе к Интернету подключено несколько пользователей решение с использованием прокси-сервера для вас.
Да, я чуть не забыл — использование прокси-сервера на медленном выделенном канале (скажем 64кбит/сек) значительно ускорит загрузку страниц ваших любимых сайтов.
Для устройства прокси-сервера будем использовать бесплатное программное обеспечение —прокси-сервер Squid (см. http://www.squid-cache.org) на базе FreeBSD или Linux. Вообще-то Squid существует и для Windows NT, однако ценность такого решения на мой взгляд является сомнительной.
Перед установкой Squid следует скачать последнюю стабильную версию в виде исходных кодов ( http://www.squid-cache.org/Versions/v2/2.4/), или бинарного пакета с сервера производителя дистрибутива вашей операционной системы.
Для компиляции исходных кодов применяется стандартная последовательность:
./configure
make
make install (требуются права root)
Для установки бинарного пакета следует применять способы характерные для вашей операционной системы, например для FreeBSD следует подать такую команду (от пользователя root):
pkg_add squid-2.4_x.tgz
После установки следует приступить к конфигурированию. Местонахождение конфигурационных файлов сильно отличается в зависимости от дистрибутива (/etc, /usr/local/etc/squid, /usr/local/squid/etc). В общем случае рекомендую поискать файл squid.conf следующей командой (желательно от root):
find / -name "squid.conf" -print
Загрузите squid.conf в подходящий редактор. Почти 3000 строк. Возьмите себя в руки, все не так страшно — реальный конфигурационный файл будет куда меньше. Итак пример простого конфигурационного файла для squid (подразумевается что у нас локальная сеть класса C 192.16.0.0/255.255.0.0), а машина c прокси-сервером имеет адрес 192.16.0.1 с шлюзом в Интернете (см. рисунок):

# IP-адрес и порт на котором будет доступен
# прокси-сервер для клиентов
http_port 192.16.0.1:3128

# Отключим "общение" с соседними прокси-серверами
icp_port 0
htcp_port 0

# Отключим кеширование динамически загружаемых страниц
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

# Укажем местонахождение и размер кеша (200Мб)
cache_dir ufs /var/squid 200 32 384

# Местонахождение логов запросов к прокси-серверу
cache_access_log /usr/local/squid/logs/access.log

# Местонахождение логов кеша
cache_log /usr/local/squid/logs/cache.log

# Отключим бесполезный лог менеджера кеша
cache_store_log none

# Пароль для анонимного ftp-соединения
ftp_user ano@nim.ru

# Откроем доступ к прокси-серверу с клиентов
# из нашей подсети (192.16.0.0/255.255.0.0)
acl all src 192.16.0.0/16
http_access allow all
Следует отметить, что squid по умолчанию будет запущен с правами пользователя nobody из группы nogroup (это один из самых бесправных пользователей в системе), следовательно необходимо позаботиться о соответствующих правах доступа к каталогам:
chmod nobody:nogroup /usr/local/squid/logs
mkdir /var/squid
chmod nobody:nogroup /var/squid
Теперь все готово для первого запуска:
/usr/local/squid/bin/squid -z
Эта команда создаст необходимое количество подкаталогов в которых будут храниться данные кеша. Все готово, теперь можно запускать прокси-сервер в обычном режиме:
/usr/local/squid/bin/RunCache >/dev/null 2>&1 &
Однако разумно запускать squid сразу при старте системы, например в FreeBSD для этого следует в каталоге /usr/local/etc/rc.d создать файл следующего содержания:
#!/bin/sh
case "$1" in

; старт прокси-сервера
start)
rm /usr/local/squid/logs/squid.pid >/dev/null 2>&1
(cd /tmp; /usr/local/squid/bin/RunCache >/dev/null 2>&1 &)
echo -n ' squid'

; остановка прокси-сервера
stop)
kill `cat /usr/local/squid/logs/squid.pid`
esac
exit 0
Итак прокси-сервер работает. Теперь, для работы с ним, необходимо правильно настроить наш браузер: например для Internet Explorer v6.0 это делается следующим образом: меню «Tools»  «Internet Options…» далее вкладка «Connections», кнопка «LAN Settings…» в открывшемся диалоговом окне требуется установить флажок «Use proxy server for your LAN» и записать адрес и порт прокси-сервера в соответствующие поля (в нашем случае это 192.16.0.1 и 3128). Несколько нажатий на кнопку «ОК» и ваш браузер готов для работы с прокси-сервером!


Комментарии: 0
Отправить другу

Домашняя страничка Станислава Лапшанского

RusHelp.com - вся компьютерная документация на русском!