Вопрос или проблема
Я настроил squid lusca на Ubuntu 11.04 и также настроил кэширование видео, но проблема в том, что squid не может кэшировать видео более 2 минут длиной и файл размером до 5.xx МБ только.
Вот моя конфигурация, пожалуйста, подскажите, как я могу кэшировать длинные видео и файлы с помощью squid:
# PORT и прозрачный режим http_port 8080 transparent server_http11 on icp_port 0
# Каталог кэша, измените его в соответствии с вашей системой.
# но сначала создайте каталог в корне с помощью mkdir /cache1
# и затем выполните эту команду chown proxy:proxy /cache1
# [для Ubuntu пользователь - proxy, в Fedora пользователь - SQUID]
# Я установил 500 МБ для кэширования, зарезервированных специально для кэширования,
# настройте это в соответствии с вашими потребностями.
# Моя рекомендация - иметь один cache_dir на диск. zzz
#store_dir_select_algorithm round-robin cache_dir aufs /cache1 500 16 256 cache_replacement_policy heap LFUDA memory_replacement_policy heap LFUDA
# Если вы хотите включить дату и время в логи SQUID,
# используйте следующую команду emulate_httpd_log on logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt log_fqdn off
# Сколько дней хранить логи веб-доступа пользователей
# Вам нужно будет ротация ваших файлов логов с помощью задания cron. Например:
# 0 0 * * * /usr/local/squid/bin/squid -k rotate logfile_rotate 14 debug_options ALL,1 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log
# Я использовал службу DNSAMSQ для быстрого разрешения DNS,
# поэтому сначала установите её, выполнив apt-get install dnsmasq
dns_nameservers 127.0.0.1 101.11.11.5 ftp_user anonymous@ ftp_list_width 32 ftp_passive on ftp_sanitycheck on
# Секция ACL
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
http_reply_access allow all
icp_access allow all
#==========================
# Административные параметры
#==========================
# Я использовал UBUNTU, поэтому пользователь - proxy, в FEDORA вы можете использовать squid
cache_effective_user proxy
cache_effective_group proxy
cache_mgr [email protected]
visible_hostname proxy.aacable.net
unique_hostname [email protected]
#=============
# Акселератор
#=============
half_closed_clients off
quick_abort_min 0 KB
quick_abort_max 0 KB
vary_ignore_expire on
reload_into_ims on
log_fqdn off
memory_pools off
# Если вы хотите скрыть вашу прокси-машину от обнаружения на различных сайтах, используйте следующее
via off
#============================================
# ОПЦИИ, ВЛИЯЮЩИЕ НА РАЗМЕР КЭША / zaib
#============================================
# Если у вас 4 ГБ памяти в Squid box, мы будем использовать формулу 1/3
# Вы можете настроить это в соответствии с вашими потребностями. Если squid использует слишком много оперативной памяти,
# уменьшите её до 128 МБ или даже меньше.
cache_mem 256 MB
minimum_object_size 512 bytes
maximum_object_size 500 MB
maximum_object_size_in_memory 128 KB
#============================================================$
# SNMP, если вы хотите создавать графики для SQUID через MRTG
#============================================================$
#acl snmppublic snmp_community gl
#snmp_port 3401
#snmp_access allow snmppublic all
#snmp_access allow all
#============================================================
# ZPH, чтобы разрешить доставку кэшированного содержимого на полной скорости в сети,
# Обход очереди на MT.
#============================================================ tcp_outgoing_tos 0x30 all zph_mode tos zph_local 0x30 zph_parent 0
zph_option 136
# Кэширование Youtube
acl videocache_allow_url url_regex -i \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.com\/videoplayback \.youtube\.com\/videoplay \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.[a-z][a-z]\/videoplayback \.youtube\.[a-z][a-z]\/videoplay \.youtube\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i \.googlevideo\.com\/videoplayback \.googlevideo\.com\/videoplay \.googlevideo\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.com\/videoplayback \.google\.com\/videoplay \.google\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.[a-z][a-z]\/videoplayback \.google\.[a-z][a-z]\/videoplay \.google\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i proxy[a-z0-9\-][a-z0-9][a-z0-9][a-z0-9]?\.dailymotion\.com\/
acl videocache_allow_url url_regex -i vid\.akm\.dailymotion\.com\/
acl videocache_allow_url url_regex -i [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?\.xtube\.com\/(.*)flv
acl videocache_allow_url url_regex -i \.vimeo\.com\/(.*)\.(flv|mp4)
acl videocache_allow_url url_regex -i va\.wrzuta\.pl\/wa[0-9][0-9][0-9][0-9]?
acl videocache_allow_url url_regex -i \.youporn\.com\/(.*)\.flv
acl videocache_allow_url url_regex -i \.msn\.com\.edgesuite\.net\/(.*)\.flv
acl videocache_allow_url url_regex -i \.tube8\.com\/(.*)\.(flv|3gp)
acl videocache_allow_url url_regex -i \.mais\.uol\.com\.br\/(.*)\.flv
acl videocache_allow_url url_regex -i \.blip\.tv\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram|m4v)
acl videocache_allow_url url_regex -i \.apniisp\.com\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram|m4v)
acl videocache_allow_url url_regex -i \.break\.com\/(.*)\.(flv|mp4)
acl videocache_allow_url url_regex -i redtube\.com\/(.*)\.flv
acl videocache_allow_dom dstdomain .mccont.com .metacafe.com .cdn.dailymotion.com
acl videocache_deny_dom dstdomain .download.youporn.com .static.blip.tv
acl dontrewrite url_regex redbot\.org \.php
acl getmethod method GET
storeurl_access deny dontrewrite
storeurl_access deny !getmethod
storeurl_access deny videocache_deny_dom
storeurl_access allow videocache_allow_url
storeurl_access allow videocache_allow_dom
storeurl_access deny all
storeurl_rewrite_program /etc/squid/storeurl.pl
storeurl_rewrite_children 7
storeurl_rewrite_concurrency 10
acl store_rewrite_list urlpath_regex -i \/(get_video\?|videodownload\?|videoplayback.*id)
acl store_rewrite_list urlpath_regex -i \.flv$ \.mp3$ \.mp4$ \.swf$ \
storeurl_access allow store_rewrite_list
storeurl_access deny all
refresh_pattern -i \.flv$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.mp3$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.mp4$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.swf$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.gif$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.jpg$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.jpeg$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.exe$ 10080 80% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth
# 1 год = 525600 минут, 1 месяц = 10080 минут, 1 день = 1440
refresh_pattern (get_video\?|videoplayback\?|videodownload\?|\.flv?)
10080 80% 10080 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims
refresh_pattern (get_video\?|videoplayback\?id|videoplayback.*id|videodownload\?|\.flv?)
10080 80% 10080 ignore-no-cache ignore-private override-expire override-lastmod reload-into-ims
refresh_pattern \.(ico|video-stats)
10080 80% 10080 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth override-lastmod negative-ttl=10080
refresh_pattern \.etology\?
10080 80% 10080 override-expire ignore-reload ignore-no-cache
refresh_pattern galleries\.video(\?|sz)
10080 80% 10080 override-expire ignore-reload ignore-no-cache
refresh_pattern brazzers\?
10080 80% 10080 override-expire ignore-reload ignore-no-cache
refresh_pattern \.adtology\?
10080 80% 10080 override-expire ignore-reload ignore-no-cache
refresh_pattern ^.*(utm\.gif|ads\?|rmxads\.com|ad\.z5x\.net|bh\.contextweb\.com|bstats\.adbrite\.com|a1\.interclick\.com|ad\.trafficmp\.com|ads\.cubics\.com|ad\.xtendmedia\.com|\.googlesyndication\.com|advertising\.com|yieldmanager|game-advertising\.com|pixel\.quantserve\.com|adperium\.com|doubleclick\.net|adserving\.cpxinteractive\.com|syndication\.com|media.fastclick.net).*
10080 20% 10080 ignore-no-cache ignore-private override-expire ignore-reload ignore-auth negative-ttl=40320 max-stale=10
refresh_pattern ^.*safebrowsing.*google 10080 80% 10080 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth negative-ttl=10080
refresh_pattern ^http://((cbk|mt|khm|mlt)[0-9]?)\.google\.co(m|\.uk) 10080 80% 10080 override-expire ignore-reload ignore-private negative-ttl=10080
refresh_pattern ytimg\.com.*\.jpg 10080 80% 10080 override-expire ignore-reload
refresh_pattern images\.friendster\.com.*\.(png|gif) 10080 80% 10080 override-expire ignore-reload
refresh_pattern garena\.com 10080 80% 10080 override-expire reload-into-ims
refresh_pattern photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 10080 80% 10080 override-expire ignore-reload
refresh_pattern vid\.akm\.dailymotion\.com.*\.on2\? 10080 80% 10080 ignore-no-cache override-expire override-lastmod
refresh_pattern mediafire.com\/images.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 10080 80% 10080 reload-into-ims override-expire ignore-private
refresh_pattern ^http:\/\/images|pics|thumbs[0-9]\. 10080 80% 10080 reload-into-ims ignore-no-cache ignore-reload override-expire
refresh_pattern ^http:\/\/www.onemanga.com.*\/ 10080 80% 10080 reload-into-ims ignore-no-cache ignore-reload override-expire
refresh_pattern ^http://v\.okezone\.com/get_video\/([a-zA-Z0-9]) 10080 80% 10080 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth override-lastmod negative-ttl=10080
#изображения facebook
refresh_pattern -i \.facebook.com.*\.(jpg|png|gif) 10080 80% 10080 ignore-reload override-expire ignore-no-cache
refresh_pattern -i \.fbcdn.net.*\.(jpg|gif|png|swf|mp3) 10080 80% 10080 ignore-reload override-expire ignore-no-cache
refresh_pattern static\.ak\.fbcdn\.net*\.(jpg|gif|png) 10080 80% 10080 ignore-reload override-expire ignore-no-cache
refresh_pattern ^http:\/\/profile\.ak\.fbcdn.net*\.(jpg|gif|png) 10080 80% 10080 ignore-reload override-expire ignore-no-cache
#Все файлы
refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)
10080 80% 10080 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)
10080 80% 10080 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)
10080 80% 10080 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)
10080 80% 10080 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)
10080 80% 10080 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^ftp: 10080 95% 10080 override-lastmod reload-into-ims
refresh_pattern . 1440 95% 10080 override-lastmod reload-into-ims
Решение, вероятно, заключается в указании maximum_object_size на значение большее, чем по умолчанию. Вы также можете посмотреть мою конфигурацию (для Squid 3), которая должна также подойти.
.
Ответ или решение
Для успешного кеширования видео и файлов с помощью Squid Lusca на Ubuntu 11.04, необходимо внести ряд изменений в конфигурацию. Основная проблема, с которой вы столкнулись, заключается в ограничении на длину видео и размер файлов — до 2 минут и 5.xx МБ соответственно. Давайте разберёмся, как можно улучшить вашу конфигурацию, чтобы увеличить эти параметры.
Шаги по улучшению конфигурации для кеширования
-
Увеличение максимального размера объекта:
Ваша текущая конфигурация устанавливает параметрmaximum_object_size
равный 500 МБ, что на первый взгляд кажется достаточным. Однако, стоит проверить этот параметр ещё раз на возможные проблемы с его применением и корректностью. Убедитесь, что значение именно 500 MB, так как по умолчанию у некоторых версий он может быть установлен в более низкое значение. -
Настройка refresh pattern:
Пересмотрите правилаrefresh_pattern
, чтобы убедиться, что они корректно применяются для всех типов файлов и расширений, которые вы хотите кешировать. Для долгих видео содержимое строк должно охватывать все необходимые форматы, такие как .mp4, .flv и другие важные видеорасширения. -
Увеличьте объем памяти для кеша:
Параметрcache_mem
установлен в 256 MB. Рассмотрите возможность его увеличения, если у вашего сервера достаточно оперативной памяти. Это может ускорить процесс кеширования и отработку запросов. -
Оптимизация ACL и разрешений:
Убедитесь, что в конфигурации правильно настроены ACL правила и они не блокируют нужный трафик. Параметрыacl videocache_allow_url
должны корректно отслеживать URL всех тех сервисов, с которых вы планируете кешировать видео, например, Youtube, Vimeo и др. -
Проверка и настройка путей для хранилища данных:
Убедитесь, что каталог/cache1
, который вы определили для работы с кешем, имеет достаточное пространство и правильные права доступа. Используйте командуchown proxy:proxy /cache1
, чтобы установить соответствие владельцу и группе. -
Управление общими параметрами кеширования:
Обратите внимание на другие параметры, такие какstore_dir_select_algorithm
, которые могут влиять на распределение нагрузки и эффективность кеша.
Рекомендации по диагностике
-
Анализ логов: Изучите логи Squid, чтобы лучше понять, какие именно ошибки или проблемы возникают. Логи находятся по пути:
/var/log/squid/access.log
,/var/log/squid/cache.log
,/var/log/squid/store.log
. -
Тестирование изменений: После внесения изменений выполняйте тестирование, чтобы убедиться в их эффективности.
-
Документация и обновления: Поскольку настройки специфичны для Lusca, которая является форком Squid, проверяйте наличие актуальных обновлений и записей в документации проекта.
Следуя этим рекомендациям, вы сможете существенно улучшить производительность и функциональность кеширования в вашей среде. Успешной настройки!