17.08.2008, 11:40
|
#2
|
Постоялец
Пол:
Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: ПОМОГИТЕ SQUID НЕ КЕШЕРУЕТ
Я делал так:
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
Squid (proxy-server)
cd /usr/ports/www/squid24 (или другая версия – я скачал 2.6.STABLE16 для FreeBSD версии 6.2)
Здесь:
./configure -- localstatedir=/var/squid
--enable-delay-pools --enable-ipf-transparentЗатем:
Здесь мы включили поддержку прозрачного проксирования и настраиваем расположение логов и кэша squid в /var/squid – на отдельный раздел, чтобы его кэш чувствовал себя вольготно.
make
make install
chmod u+w /usr/local/etc/squid/squid.conf
joe /usr/local/etc/squid/squid.conf
После инсталяции редактируем конфиг squid, находящийся в /usr/local/squid/etc/squid.conf.
Должно получиться примерно следующее:
http_port 3128 transparent ;Включаем прозрачное проксирование
visible_hostname srv
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 128MB MB
maximum_object_size 4096 KB
minimum_object_size 0 KB
ftp_passive on
request_body_max_size 4 MB
cache_dir ufs /var/squid/cache 1024 16 256
cache_access_log /var/squid/logs/access.log
cache_log /var/squid/logs/cache.log
cache_store_log /var/squid/logs/store.log
logfile_rotate 2
pid_filename /var/squid/logs/squid.pid
coredump_dir /var/squid/cache
memory_pools off
cache_swap_high 95
cache_swap_low 90
ipcache_size 1024
ipcache_high 95
ipcache_low 90
refresh_pattern ^ftp: 1440 100% 3360
refresh_pattern ^gopher: 1440 100% 1440
refresh_pattern . 0 100% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl home src 10.0.0.11-10.0.0.254
acl my src 10.0.0.1-10.0.0.10
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow home
http_access allow my
http_access deny all
Теперь создаем директорию, в которой у нас будет храниться кэш squid.
Все эти пути должны указываться в файле /usr/local/squid/etc/squid.conf соответствующими диррективами.
# mkdir /var/squid/cache
А тут у нас будут лежать логи.
# mkdir /var/squid/logs
Нужно позаботиться, чтобы директории /usr/local/squid/cache и /usr/local/squid/logs были доступны пользователю, от имени которого работает squid. Узнать имя этого пользователя можно так (до переделки файла конфигурации):
# cat /usr/local/squid/etc/squid.conf | grep cache_effectiv
cache_effective_user nobody
сache_effective_group nogroup
Получается, что пользователя зовут nobody, и группа у него nogroup.
# chown -R nobody /var/squid/cache /var/squid/logs
# /usr/local/squid/sbin/squid -z
Внутри директории /var/squid/cache создаем иерархию директорий для хранения файлов.
Заглянув в /var/squid/cache, вы сразу поймете, что имелось в виду под словом иерархия.
Запускаем squid
# /usr/local/squid/sbin/squid -D
А на другой консоли смотрим, какие ошибки появляются
# tail -f /var/log/messages
Если все сделали правильно, то должны увидеть что-то подобное.
Oct 3 12:15:05 dns squid[139]: Squid Parent: child process 141 started
В файл /etc/rc.conf добавляем строку:
squid_enable=”YES”
А в /usr/local/etc/rc.d добавляем файл squid.sh (опции chmod 100555, т.е. запускаемый)- такого содержания:
#!/bin/sh
cd /var/squid/cache
rm -R *
cd /var/squid/logs
rm -R *
/usr/local/squid/sbin/squid -z
/usr/local/squid/sbin/squid –D
При перезапуске системы будет полностью очищаться кеш squid и логи, а так же будут создаваться необходимые файлы для его работы. Затем squid стартует.
Если включена функция прозрачного проксирования, то в правилах файервола – не забудьте установить правило вида:
Ipfw add 10 fwd 127.0.0.1,3128 tcp from 10.0.0.0/24 to any 80 out xmit rl1
Где rl1 - внешний ИФ сервера, смотрящий в мир.
Это развернёт весь трафик с 80-го порта на порт сквида – 3128 и даст то самое принудительное проксирование.
После этого в browser'е можно установить в качестве proxy-сервера наш сервер (если активна функция прозрачного кешированя – можно этого и не делать, всё будет работать и так). Работу squid можно определить по файлу /var/squid/logs/access.log – в нём видно кто и куда ходит. |
|
 |
|
 |
|
Вот таким образом всё работает уже года 2.
Последний раз редактировалось Kucher2; 17.08.2008 в 11:43..
|
|
|