OPTIMIZAR SQUID + DELAYS_POOLS + SQUISH

Existen muchas maneras de usar el squid para mejorar el rendimiento
y gestion de la cache, pero existen muchos interrogantes en cuanto
a mejorar la navegacion en sitios como youtube, yahoo, etc...
Pues aqui esta una configuracion de squid que permite cachear
al max todo lo que se navega, limitar tanto el ancho de banda y el tiempo.


# SQUID-PROXY-SKY ###
######################
# NETWORK OPTIONS
# -----------------------------------------------------------------------------
http_port 3128

# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# -----------------------------------------------------------------------------
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

# OPTIONS WHICH AFFECT THE CACHE SIZE
# -----------------------------------------------------------------------------
cache_mem 67108864 bytes
cache_swap_low 98
cache_swap_high 99
maximum_object_size 134217728 bytes
maximum_object_size_in_memory 131072 bytes
ipcache_size 4096
ipcache_low 98
ipcache_high 99
fqdncache_size 2096
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF

# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# -----------------------------------------------------------------------------
cache_dir ufs /var/spool/squid 15000 16 256
access_log /var/log/squid/access.log squid
cache_log none
cache_store_log none

# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------
request_header_max_size 524288 KB
request_body_max_size 0 KB
refresh_pattern -i ^ftp: 600000 100% 700000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i ^http: 600000 100% 700000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i ^gopher: 600000 100% 700000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i . 600000 100% 700000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth

quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100

read_ahead_gap 16384 bytes
negative_ttl 0 seconds
positive_dns_ttl 86400 seconds
negative_dns_ttl 1 seconds
range_offset_limit 0 bytes

# TIMEOUTS
# -----------------------------------------------------------------------------
forward_timeout 240 seconds
connect_timeout 60 seconds
peer_connect_timeout 30 seconds
read_timeout 900 seconds
request_timeout 120 seconds
persistent_request_timeout 60 seconds
client_lifetime 7200 seconds
half_closed_clients off
pconn_timeout 60 seconds
shutdown_lifetime 20 seconds

# SQUIDGUARD
# -----------------------------------------------------------------------------
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 1

# AUTH REQUIRED
# -----------------------------------------------------------------------------
auth_param basic program /usr/lib/squid/ldap_auth -b "cn=users,dc=midominio,dc=cu" 127.0.0.1
acl auth proxy_auth REQUIRED

# SQUISH (QUOTA)
# -----------------------------------------------------------------------------
acl SQUISHLOC url_regex \.mydomain\.cu
acl SQUISHED1 proxy_auth -i "/etc/squid/squished"
deny_info http://proxy.mydomain.cu/?squished& SQUISHED1
http_access allow SQUISHLOC

# ACCESS CONTROLS
# -----------------------------------------------------------------------------
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 SSL_ports port 443 563
acl Safe_ports port 443 80 21 563 70 210 280 488 591 777 901 1025-65535
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

# ACCESS CONTROLS MY SERVER
# -----------------------------------------------------------------------------
acl server-ip src 10.0.0.1
acl director src 10.0.0.10
acl redlocal src 10.0.0.0-10.0.0.100
acl jornada time SMTWHFA 08:00-16:40
acl denysite url_regex -i 'c:/squid/etc/denysite'
acl allowsite url_regex -i 'c:/squid/etc/allowsite'

http_access allow server-ip
http_access allow director jornada
http_access deny denysite !allowsite
http_access allow redlocal jornada auth
http_access deny all

always_direct allow all
never_direct deny all

# NO CACHE
# -----------------------------------------------------------------------------
acl urlnocache url_regex -i mydomain.cu htm mht hta htc zips bases update upgrade upload virus
no_cache deny urlnocache

# INFO ADMIN SERVER
# -----------------------------------------------------------------------------
cache_mgr admin@mydomain.cu
visible_hostname proxy.mydomain.cu

# SECURITY
# -----------------------------------------------------------------------------
header_access From deny all
header_access User-Agent deny all
header_access Via deny all
header_access X-Forwarded-For deny all
header_access Accept-Language deny all
header_replace User-Agent Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.12)
header_replace Via 127.0.0.1
header_replace X-Forwarded-For 127.0.0.1
header_replace Accept-Language es,en

http_reply_access allow all
icp_access allow all
miss_access allow all
reply_header_max_size 20480 bytes
reply_body_max_size 0 allow all

# MISCELLANEOUS
# -----------------------------------------------------------------------------
logfile_rotate 0
memory_pools on
forwarded_for off
log_icp_queries off
icp_hit_stale on
dns_testnames localhost
icon_directory /usr/share/squid/icons
error_directory /usr/share/squid/errors/Spanish
nonhierarchical_direct off
prefer_direct off
pipeline_prefetch on
store_dir_select_algorithm round-robin
vary_ignore_expire on
emulate_httpd_log off
offline_mode off
ie_refresh on

# DELAY POOLS
# -----------------------------------------------------------------------------
delay_pools 3

delay_class 1 3
delay_class 2 3
delay_class 3 3

delay_parameters 1 -1/-1 -1/-1 -1/-1
delay_parameters 2 9000/9000 9000/9000 9000/9000
delay_parameters 3 4125/4125 4125/4125 4125/4125

delay_access 1 allow server-ip
delay_access 2 allow director
delay_access 3 allow redlocal
delay_access 4 deny all

# Para los que desean empesar a usar squid desde windows una modificacion del ejemplo anterior...

cache_dir ufs d:/squid/var/cache 500 16 256
coredump_dir d:/squid/var/cache
access_log c:/squid/var/logs/access.log squid

acl denysite url_regex -i 'c:/squid/etc/denysite'
acl allowsite url_regex -i 'c:/squid/etc/allowsite'

icon_directory c:/squid/share/icons
error_directory c:/squid/share/errors/Spanish


# Aqui les muestro diferentes maneras de restringir


# Red para las restrinciones
acl redlan src 192.168.1.10-192.168.1.100

# Restringe el acceso libre (solicita autentificacion)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
# - Debian - LDAP
auth_param basic program /usr/lib/squid/ldap_auth -b "ou=users,dc=mydomain,dc=cu" 127.0.0.1
# - Centos - LDAP
auth_param basic program /usr/lib/squid/squid_ldap_auth -b "ou=users,dc=mydomain,dc=cu" 127.0.0.1
acl auth proxy_auth REQUIRED
http_access allow redlan auth

# Restringe el acceso a sitios o contenidos
acl denysites url_regex -i '/etc/squid/denysites'
acl allowsites url_regex -i '/etc/squid/allowsites'
http_access allow redlan allowsites !denysites

# Restringe el acceso de descargas
acl denyfiles urlpath_regex -i \.avi$ \.mp4$ \.mp3$ \.mpg$ \.mpeg$ \.mov$ \.ram$ \.vob$
http_access allow redlan !denyfiles

# Restringe la cantidad de conexiones (Limita -> IDA, DAP, downthemall, etc)
acl file urlpath_regex -i \.avi$ \.mp4$ \.mp3$ \.mpg$ \.mpeg$ \.mov$ \.ram$ \.vob$
acl maxcon maxconn 6
http_access deny file maxcon
http_access allow redlan

# Restringe el acceso por horario
acl jornada time SMTWHFA 08:00-16:40
http_access allow redlan jornada

# Restringe el acceso por dominios
acl dominio dstdomain .cu
http_access allow redlan dominio

# Restringe el acceso de MAC address
acl denymac arp 00:00:00:00:00:00
http_access allow redlan !denymac


# Restringe el ancho de banda a utilizar (-P2P), by Ecualug, falcom


delay_pools 2
delay_class 1 2
delay_class 2 2
delay_parameters 1 -1/-1 -1/-1
delay_parameters 2 4096/4096 4096/4096
delay_access 1 allow server
delay_access 2 allow redlan

# TABLA DE EQUIVALENCIAS
#2048 B ==> 16 kb ==> 2KB
#4096 B ==> 32 kb ==> 4KB
#8192 B ==> 64 kb ==> 8KB
#16384 B ==> 128kb ==> 16KB
#32768 B ==> 256Kb ==> 32KB
#65536 B ==> 512Kb ==> 64KB
#131072 B ==> 1 Mb ==> 128KB
#196608 B ==> 1.5 Mb ==> 192KB
#262144 B ==> 2 Mb ==> 256KB

# Other Example, by Ecualug (RazaMetaL)
Supongamos que tenemos contratados 512kbps con un proveedor de Internet
y queremos que de ese ancho de banda 384kbps (48Kb/s) sean destinados
para los video fanaticos de youtube, así aseguro ancho de banda
para que los demás mortales no se quejen de la lentitud.

delay_pools 1
delay_class 1 1
delay_parameters 1 48000/65000
acl formatos_video urlpath_regex -i "/etc/squid/formatos_video"
acl sitios_video url_regex -i "/etc/squid/sitios_video"
delay_access 1 allow sitios_video
delay_access 1 allow formatos_video

# Optimizacion de Squid, by Ecualug (eldany76)

#optimizar y arreglar consultas a sitios como hotmail,yahoo,etc.
hierarchy_stoplist cgi-bin \?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

#Mejorar la forma de reemplazar objetos antiguos
cache_swap_low 90
cache_swap_high 90

#Aprovechar espacio en el disco
maximum_object_size 8192 KB
minimum_object_size 3 KB

#No llenar la memoria con archivos grandes
maximum_object_size_in_memory 96 KB

#Cachear mayor cantidad de datos IP
ipcache_size 10240
fqdncache_size 10240

#No gastar procesador ni memoria en registros log
cache_access_log none
cache_log none
cache_store_log none

#Eliminar conexiones sin cerrar
half_closed_clients off

#Ocultar ip interno del cliente o usuario
forwarded_for off

#Disponemos de 512b de RAM
cache_mem 480 MB

cache_dir aufs /var/squid 20000 16 256

#Cambiar algoritmos de actualizacion para ahorrar ancho de banda
refresh_pattern ^http: 2880 90% 10080
refresh_pattern ^ftp: 1440 80% 10080
refresh_pattern ^gopher: 240 95% 10080
refresh_pattern . 1440 90% 22160

#Conviene no tocar lo dado por Squid
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
acl Safe_ports port 80 #http
acl Safe_ports port 21 #ftp
acl Safe_ports port 443 563 #https, snees
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 #filemarker
acl Safe_ports port 777 #multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#Dejamos usar el cache solo en nuestra red
acl usuarios src 192.168.1.0/255.255.255.0
http_access allow usuarios
http_access deny all

http_reply_access allow all
icp_access allow all


SQUID con SQUISH

By JovenClub [Sarbelio-Moa], Rimed [wilfredo-vcl, Ariel-cfg]

# Libreria necesaria

aptitude install libtemplate-perl

# Descargar el paquete y descomprimirlo

wget -P /usr/local http://www.ledge.co.za/software/squint/squish/squish-0.0.18.tar.gz?
cd /usr/local
tar -vzxf /usr/local/squish-0.0.18.tar.gz
rm /usr/local/squish-0.0.18.tar.gz
mv /usr/local/squish-0.0.18 /usr/local/squish
chown -R root.root /usr/local/squish

# Creamos el fichero squished (vacio)

touch /etc/squid/squished

# Copie el fichero squish.conf

cp /usr/local/squish/squish.conf /etc/squid/squish.conf

# Agrege estas lineas al squid.conf

nano /etc/squid/squid.conf
# SQUISH (QUOTA)
# -----------------------------------------------------------------------------
acl SQUISHLOC url_regex \.mydomain\.cu
acl SQUISHED1 proxy_auth -i "/etc/squid/squished"
deny_info http://proxy.mydomain.cu/?squished& SQUISHED1
http_access allow SQUISHLOC -----------------------------------------------------------------------------

# Establecer las cuotas

cat > /etc/squid/squish.conf << "EOF"
usuario1 150Mb/month
usuario2 100Mb/month
usuario3 50Mb/month
EOF

# Crear un virtualhost llamado "proxy" y el host activo en el DNS

cat > /etc/apache2/sites-enabled/proxy << "EOF"

ServerName proxy.mydomain.cu
DocumentRoot /usr/local/squish

Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex squish.cgi
AllowOverride None
Order allow,deny
Allow from all

ServerSignature On
LogLevel warn
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/proxy_access.log combined

EOF

# Automatizacion

crontab -e
*/5 * * * * /usr/local/squish/squish.cron.sh

NOTA: La DB se almacena en ( /var/lib/squish )

Salud2s...

Comentarios

Muchas gracias por la pronta

Muchas gracias por la pronta respuesta amigo..

Asi es, estoy usando la version 3 de Squid, y bueno la forma con la que lo instale fue de un manual de Guimu que encontre y bueno recien veo el tema de los delay.

Alguna forma para poder hacer que mi squid trabaje con esto?? como compruebo?..

Ejecuta: squid -v Y mira si

Imagen de deathUser

Ejecuta:


squid -v

Y mira si tienes habilitado "--enable-delay-pools", debe sarir algo como:


root@dlaptop060606:~# squid -v
Squid Cache: Version 2.6.STABLE18
configure options: '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,coss,diskd,null' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm' '--enable-carp' '--enable-follow-x-forwarded-for' '--with-large-files' '--with-maxfd=65536' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux' 'CFLAGS=-Wall -g -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='

Acá tienes el manual de squid 3:
http://www.squid-cache.org/Versions/v3/3.1/cfgman/

Aparentemente tiene la misma sintaxis respecto a los delay pools

bye
:)

Hum no me aparece comando no

Hum no me aparece comando no reconocido cuando lo pongo.. pucha.. si he visto el manual veo q es lo mismo casi del 2.6 pero ahora como puedo hacer para que me reconosca los delay?.. reinstalar? o como podria hacer?..

No has dicho que distro

Imagen de deathUser

No has dicho que distro usas, podrías tratar de ubicar el squid con find, y ejecútalo como root ...


find / name squid

Ahi te debe reportar la ubicación del squid luego lo ejecutas con el path completo, en mi caso:


/usr/sbin/squid -v

O puedes usar:

which squid
/usr/sbin/squid
root@dlaptop060606:~# whereis squid
squid: /usr/sbin/squid /etc/squid /usr/lib/squid /usr/share/squid /usr/share/man/man8/squid.8.gz

bye
:)

Acabo de leer los post y

Acabo de leer los post y como ya te han comentado, no tienes funcion para usar delays_pools, tienes que buscar la manera de buscar el source del squid y compilarlo de manera tal que habilites los delays_pools o usar la misma version que esta en este (como) la 2.6, asi no te complicaras tanto... y sobre el squid -v prueba con squid3 -v

Mira aqui...
http://www.squid-cache.org/Versions/

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

Si mucha razon utilizo el

Si mucha razon utilizo el debian ech 4 rv5 con el squid3 e iptables.

Al ejecutar la consulta me genera este resultado:

shieldICR:~# squid3 -v
Squid Cache: Version 3.0.PRE5
configure options: '--build=i486-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--disable-maintainer-mode' '--disable-dependency-tracking' '--srcdir=.' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,coss' '--enable-diskio=AIO,Blocking,DiskDaemon,DiskThreads' '--enable-removal-policies=lru,heap' '--enable-poll' '--enable-digest-pools' '--enable-snmp' '--enable-htcp' '--enable-select' '--enable-carp' '--enable-large-files' '--enable-underscores' '--enable-auth=basic,digest,ntlm' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,getpwnam,multi-domain-NTLM' '--enable-ntlm-auth-helpers=SMB' '--enable-digest-auth-helpers=ldap,password' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--with-filedescriptors=4096' '--enable-epoll' '--enable-linux-netfilter' 'CC=cc' 'CFLAGS=-g -Wall -O2' 'CPPFLAGS=' 'CXXFLAGS=-g -Wall -O2' 'CXX=g++' 'LDFLAGS=' 'build_alias=i486-linux-gnu'

AHORA la pregunta es lo que deberia de ahcer como me indican es compilar squid pero ahora con opciones de delays no es asi?... voy a investigar entonces.. seria genial alguna sugerencia de un manual u enlace para revisar. de todas maneras voy a investigar tambien como puedo realizar esto.. je gracias tios..

Puedes bajar la ultima

Puedes bajar la ultima version source y compilarla... o instalar desde el mirror la 2.6 que seguro tiene por defecto el uso de delays_pools...

Para compilar solo tienes que mirar el bloc de notas (readme) o (Install) que esta dentro y listo...

Seguro veras algo asi..


./configure -prefix=/opt/squid -exec-prefix=/opt/squid -enable-delay-pools -enable-cache-digests -enable-poll -disable-ident-lookups -enable-truncate -enable-removal-policies
make all
make install

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

DELAYS CON BANDA DE 2MB

Bueno les comento, que ya tengo los delay activados, desintale el squid3 y puse el squid 2.6 ya viene preconfigurado.. y pues es cuestion de activarlo..

Ahora con respecto a la configuracion de squid de Guimu, respecto a los refresh, pues funcionan de maravilla con paginas tipo youtube, o de musica online.. pero en paginas pequeñas como por ejemplos periodicos, hi5, terra.. pues no actualizan y me muestran paginas con 3 a 4 dias de retraso.. tve que desabilitar esos refresh poner otros que encontre que pues no me dan ese problema.. pero tiene para mejorarse...

Otra consulta teniendo una banda de 2MB y 10 estaciones en la cual 2 de ellas bajan software y el resto pues escuchan musica online y navegan asi como envian correos con adjuntos de 10MB aprox. Que configuracion de delays me sugeririan??..

Bueno esperando puedan apoyarme.. les agradesco desde ya.. saludos...

Eso es algo que debes

Eso es algo que debes decidir tu, pero segun he probado los videos online casi siempre usan 512kb/s para verse correctamente sin paradas, esto seria en delay_pools 65536, ahora solo te quedaria buscar la clase y la manera de distribuirlo eficaz en toda tu red...

Sobre los Refresh, es como dice el COMO, es para cachear todo, pero como quiera aceptamos sugerencias y mejoras siempre y cuando supere el rendimiento del actual publicado...

NOTA: Si deseas mas ejemplos de delay_pools mira estos link:
Squid-Delay-Pools
delay_spool_con_squid

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

Páginas