Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
a) Motivo:
Implementar o cache do conteúdo do Windows Uptdate (WU) atravéz da opção range_offset_limit
b) Material de apoio:
Configuring Hierarchical Squid Caches
SquidFaq/WindowsUpdate - Squid Web Proxy Wiki
Como fazer cache do Windows Update utilizando apenas o Squid | lucianopinheiro.net
SourceForge.net: inComum: incomum-users
c) Preliminaremente:
Chamaremos a primeira instância de PRINCIPAL e a segunda de WU.
Todas as conexões originadas pelos clientes serão recebidas pela instância PRINCIPAL.
A instância PRINCIPAL fará a requisição a instância WU quando o conteúdo for relativo a Windows Update.
Desta forma, as requisições dos clientes não serão diretamente aceitas pela instância WU.
d) Mão a obra:
Iremos montar dois arquivos de configuração, um para cada instância do Lusca.
Podemos utilizar cópias do arquivo squid.conf padrão, ou mesmo uma cópia de squid.conf que já está rodando em seu host.
Identificaremos como squid.conf o da PRINCIPAL e de wu.conf o da WU.
Cuidados a serem tomados:
1. Usar diretório/disco de cache distintos para cada instância
2. Usar portas distintas para cada instância
3. Usar arquivos de log distintos para cada instância
4. Usar pid_file distintos para cada instância
5. Usar visible_hostname distintos para cada instância
Abaixo segue os detalhes dos cuidados a serem tomados:
squid.conf
Código :
http_port aaa.bbb.ccc.ddd:3128 transparent http11 tcpkeepalive=30,30,60
http_port 127.0.0.1:3128
visible_hostname principal
cache_dir aufs /cache0/cache 5000 128 128
cache_swap_log /cache0/logs/swap.state
coredump_dir /cache0/logs
cache_access_log /cache0/logs/access.log
#cache_access_log none
cache_log /cache0/logs/cache.log
cache_store_log none
cache_effective_user nobody
cache_effective_group nogroup
pid_filename /var/run/squid.pid
#### Cache Peer ####
acl windowsupdate dstdomain .windowsupdate.com .microsoft.com
cache_peer 127.0.0.1 parent 8080 0 proxy-only no-query no-digest no-netdb-exchange name=wu
cache_peer_access wu allow windowsupdate
always_direct deny windowsupdate
never_direct allow windowsupdate
always_direct allow all
###
wu.conf
Código :
http_port 127.0.0.1:8080 http11
visible_hostname wu
cache_mem 8 MB
maximum_object_size 1500 MB
minimum_object_size 8 KB
maximum_object_size_in_memory 64 KB
cache_dir aufs /cache1/cache 300000 128 128
cache_swap_log /cache1/logs/swap.state
coredump_dir /cache1/logs
cache_access_log /cache1/logs/access.log
#cache_access_log none
cache_log /cache1/logs/cache.log
cache_store_log none
cache_effective_user nobody
cache_effective_group nogroup
pid_filename /var/run/wu.pid
range_offset_limit -1
quick_abort_min -1
acl internal_net src aaa.bbb.ccc.ddd
http_access allow internal_net
http_access deny all
e) Colocando no ar
A instância WU vai rodar com o seguinte comando:
# squid -f /etc/squid/wu.conf
Mas não esqueça de:
Criar a estrutura para a instância WU (particionamento do disco, formatação, criação de diretórios e permissões).
Criar a estrutura de diretórios do cache com a flag -z
# squid -f /etc/squid/wu.conf -z
Editar o arquivo /etc/hosts
Código :
127.0.0.1 localhost
aaa.bbb.ccc.ddd principal
127.0.0.1 wu
Re: Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
Parabens.
Fico muito alegre em saber que já esta de pé.
Re: Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
Como tô de molho, dá tempo pra botar no papel e compartilhar as idéias com o pessoal.
Bom proveito ... outra hora posto mais umas "brincadeiras" que dá pra fazer.
Re: Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
Alguém poderia me dar uma mão?
Não estou conseguindo colocar pra rodar. É como se a principal passasse a requisição pra wu, mas ela não chegasse a ele.
Acess.log da principal
Código :
1341324334.033 240027 201.xx.xx.10 TCP_MISS/504 302 GET http://windowsupdate.microsoft.com/ - FIRST_UP_PARENT/wu text/html
No access.log da wu não consta nada.
squid.conf
Código :
#### Cache Peer ####
acl windowsupdate dstdomain .windowsupdate.com .microsoft.com
cache_peer 127.0.0.1 parent 8080 0 proxy-only no-query no-digest no-netdb-exchange name=wu
cache_peer_access wu allow windowsupdate
always_direct deny windowsupdate
never_direct allow windowsupdate
always_direct allow all
###
wu.conf
Código :
http_port 127.0.0.1:8080
visible_hostname wu
cache_mem 20 MB
maximum_object_size 1500 MB
minimum_object_size 0 KB
maximum_object_size_in_memory 64 KB
icp_port 0
cache_dir aufs /cache/wu 2000 128 128
access_log /var/log/squid-wu/access.log squid
cache_store_log /var/log/squid-wu/store.log
netdb_filename /var/log/squid-wu/netdb.state
cache_log /var/log/squid-wu/cache.log
pid_filename /var/run/squid-wu.pid
coredump_dir /var/log/squid-wu/
cache_swap_log /var/log/squid-wu/swap.state
cache_effective_user proxy
cache_effective_group proxy
range_offset_limit -1
quick_abort_min -1
acl all src all
acl internal_net src 201.xx.xx8.0/24
acl internal_net src 201.xx.xx9.0/24
acl internal_net src 201.xx.xx0.0/24
acl internal_net src 201.xx.xx1.0/24
http_access allow internal_net
http_access deny all
Netstat -nl
Código :
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3128 0.0.0.0:* LISTEN
tcp 0 0 201.xx.xx.58:3128 0.0.0.0:* LISTEN
Re: Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
Declarou wu no /etc/hosts ?
127.0.0.1 localhostaaa.bbb.ccc.ddd principal 127.0.0.1 wu
Re: Rodando duas (ou mais) instâncias do Lusca no mesmo HOST
Olá marcos.
Sim, havia declarado sim.
Eu arrumei o problema: era TPROXY. Adicionei a linha no-tproxy onde declaro o cache_peer e ficou ok. O problema é que meus clientes vão sair pro windows update com o IP do cache. :(