Кэширование видео и файлов с помощью squid lusca?

Вопрос или проблема

Я настроил 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 МБ соответственно. Давайте разберёмся, как можно улучшить вашу конфигурацию, чтобы увеличить эти параметры.

Шаги по улучшению конфигурации для кеширования

  1. Увеличение максимального размера объекта:
    Ваша текущая конфигурация устанавливает параметр maximum_object_size равный 500 МБ, что на первый взгляд кажется достаточным. Однако, стоит проверить этот параметр ещё раз на возможные проблемы с его применением и корректностью. Убедитесь, что значение именно 500 MB, так как по умолчанию у некоторых версий он может быть установлен в более низкое значение.

  2. Настройка refresh pattern:
    Пересмотрите правила refresh_pattern, чтобы убедиться, что они корректно применяются для всех типов файлов и расширений, которые вы хотите кешировать. Для долгих видео содержимое строк должно охватывать все необходимые форматы, такие как .mp4, .flv и другие важные видеорасширения.

  3. Увеличьте объем памяти для кеша:
    Параметр cache_mem установлен в 256 MB. Рассмотрите возможность его увеличения, если у вашего сервера достаточно оперативной памяти. Это может ускорить процесс кеширования и отработку запросов.

  4. Оптимизация ACL и разрешений:
    Убедитесь, что в конфигурации правильно настроены ACL правила и они не блокируют нужный трафик. Параметры acl videocache_allow_url должны корректно отслеживать URL всех тех сервисов, с которых вы планируете кешировать видео, например, Youtube, Vimeo и др.

  5. Проверка и настройка путей для хранилища данных:
    Убедитесь, что каталог /cache1, который вы определили для работы с кешем, имеет достаточное пространство и правильные права доступа. Используйте команду chown proxy:proxy /cache1, чтобы установить соответствие владельцу и группе.

  6. Управление общими параметрами кеширования:
    Обратите внимание на другие параметры, такие как store_dir_select_algorithm, которые могут влиять на распределение нагрузки и эффективность кеша.

Рекомендации по диагностике

  • Анализ логов: Изучите логи Squid, чтобы лучше понять, какие именно ошибки или проблемы возникают. Логи находятся по пути: /var/log/squid/access.log, /var/log/squid/cache.log, /var/log/squid/store.log.

  • Тестирование изменений: После внесения изменений выполняйте тестирование, чтобы убедиться в их эффективности.

  • Документация и обновления: Поскольку настройки специфичны для Lusca, которая является форком Squid, проверяйте наличие актуальных обновлений и записей в документации проекта.

Следуя этим рекомендациям, вы сможете существенно улучшить производительность и функциональность кеширования в вашей среде. Успешной настройки!

Оцените материал
Добавить комментарий

Капча загружается...