Мой старт в интернет!

При большом инет-трафике весьма полезно использовать кеширующий прокси сервер, оптимизируя при этом запросы локальных клиентов в инет. Среди бесплатных кеширующих прокси-серверов, несомненно, лидирующее положение занимает Squid. И хотя, изначально, Squid разрабатывался для *nix, в настоящее время существует его порт под Windows.

В настоящей статье мы рассмотрим как установить Squid и как подключить его модулем MySrv.

Итак, скачиваем архив с последней версией Squid  и распаковываем его в корень диска C:

Важно!
Если вы не собираетесь ограничивать пропускную способность канала для локальных пользователей, то скачивайте Standard версию, в противном случае скачивайте версию Delay-Pool.

В папке C:\squid\etc создаем папку default, копируем в нее все файлы с расширением default из папки C:\squid\etc (пригодится для восстановления конфигурации по-умолчанию в случае, если вы «законфирурите» Squid) и переименовываем файлы из папки C:\squid\etc\*.conf.default в *.conf

Открываем текстовым редактором файл C:\squid\etc\squid.conf и начинаем конфигурировать Squid.

Первым делом задаем свою локальную сеть. Для это ищем строки:

acl localnet src 10.0.0.0/8      # RFC1918 possible internal network
acl localnet src 172.16.0.0/12   # RFC1918 possible internal network
acl localnet src 192.168.0.0/16  # RFC1918 possible internal network

закоммнетируем их и указываем свою локальную сеть, например, 192.168.0.0/24. В результате получаем:

#acl localnet src 10.0.0.0/8      # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12   # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16  # RFC1918 possible internal network
acl localnet src 192.168.0.0/24   # my local network

Далее дополнительно определяем порты, к которым будет разрешен доступ из локальной сети (что не есть обязательно). Например, пользователям локальной сети будет разрешен HTTP-доступ к 43 порту (whois) и CONNECT-доступ к 21 порту (ftp), а также к диапазону портов 1025-65535 (unregistered ports). Для этого ищем строку:

acl CONNECT method CONNECT

и после нее добавляем строки:

acl MY_HTTP_ports port 43		# whois
acl MY_CONNECT_ports port 21		# ftp
acl MY_CONNECT_ports port 1025-65535	# unregistered ports

и разрешаем доступ к этим портам. Для этого строки:

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

заменяем на:

http_access deny !Safe_ports !MY_HTTP_ports
http_access deny CONNECT !SSL_ports !MY_CONNECT_ports

Далее переопределяем ширину ftp-листинга (по умолчанию — 32 символа), размер кэша в памяти (по умолчанию — 8 Мб), максимальный размер кэшируемого объекта (по умолчанию — 8 Кб), расположение и размер дискового кэша (по умолчанию — c:\squid\var\cache, 100 Мб) и адрес электронной почты администратора кэша (по умолчанию — webadmin). Для этого после строки:

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

добавляем строки:

ftp_list_width 64
cache_mem 16 MB
maximum_object_size 16384 KB
cache_dir ufs c:/squid/var/cache 512 16 256
cache_mgr admin@company.net

Находим строку:

#http_access deny to_localhost

и раскомментируем ее.

И в завершение, размещаем прокси-сервер на локальном сетевом интерфейсе (например, 192.168.0.100 — это адрес нашего прокси-сервера в локальной сети) на порту 3128. Для этого строку:

http_port 3128

заменяем на:

http_port 192.168.0.100:3128

На этом конфигурирование Squid можно считать завершенным. Для более тонкой и изощренной настройки Squid читаем документацию на официальном сайте или в сборнике документов о Squid на русском языке.

Далее производим подключение Squid модулем MySrv. Для этого в папке W:\usr\local\mysrv-cmd текстовым редактором создаем файл mysrv-squid.cmd следующего содержания:

set ModuleActive=TRUE
if not "%ModuleActive%"=="TRUE" exit /b
set ModuleServiceName=Squid
set ModuleBinFile=c:\squid\sbin\squid.exe
set ModuleConfFile=c:/squid/etc/squid.conf
if "%Action%"=="reload" (
  %ModuleBinFile% -n %ModuleServiceName% -f %ModuleConfFile% -k reconfigure
  exit /b)
if "%Action%"=="install" (
  %ModuleBinFile% -n %ModuleServiceName% -i -f %ModuleConfFile%
  net start %ModuleServiceName%
  exit /b)
if "%Action%"=="uninstall" (
  net stop %ModuleServiceName%
  %ModuleBinFile% -n %ModuleServiceName% -r
  exit /b)
if "%Action%"=="createcachedir" (
  %ModuleBinFile% -z -f %ModuleConfFile%
  exit /b)
call %Drive%:%CmdDir%\%Prefix%service.manager.cmd
exit /b

Создаем дисковый кэш командой:

mysrv.cmd createcachedir squid

и инслаллируем squid:

mysrv.cmd install squid

В результате в локальной сети имеем кэширующий прокси-сервер по адресу 192.168.0.1:3128

Команды управления Squid:

mysrv.cmd install squid инсталлировать squid
mysrv.cmd uninstall squid деинсталлировать squid
mysrv.cmd start squid стартовать squid
mysrv.cmd restart squid жесткий рестарт squid
mysrv.cmd reload squid мягкий рестарт squid (перегрузка конфигурации)
mysrv.cmd stop squid остановить squid

Ссылки:

1 комментарий: Squid как модуль MySrv

  • Спасибо за статью! Все оказалось не так страшно и сложно! 🙂

WebMoney

Вы можете оказать посильную помощь на поддержку сайта и развитие проектов переводом средств на кошельки платежной системы WebMoney

Z325624025520
E360373898601
U279044372586
R180028144815

Комментарии

QR