[FUG-BR] Squid 2.6

Flavio Alexsandro Silva falexsandro em gmx.net
Sexta Agosto 25 17:58:10 BRT 2006


Buenas Pessoal!!!

Bom, depois de muito tempo longe da lista e de inatividade, volto as 
origens...
Ehh, sou da epoca do FreeBSD 3.3.2 pra 4.0... Agora tentando me 
atualizar com as novas mudancas e maravilhas inseridas nas novas releases...

Pessoal pra quem tava tentando ou tentou instalar o squid 2.6 com 
FreeBSD 6.0 ou 6.1 e teve problemas, reporto que tenho um servidor 
rodando FreeBSD 6.1 com Squid 2.6.2 e estou utilizando proxy 
transparente!!!!

Vamos aos passos que realizei para que isto acontecesse:
 - Baixei do Freshports (www.freshports.org), o pacote do ports da 
ultima versao do squid 2.6.x (no caso 2.6.2 do dia 06 de agosto de 2006 
[ esta eh atualmente a ultima atualizacao])
 - Fui lah no diretorio /usr/ports/www/ e descompactei o pacotinho
 - Antes de dar Build no Squid, tunei o servidor, segue mudancas na 
configuracao do kernel deste (apenas adicao de opcoes no Generic):

# Yes, i choosed the new scheduler, to use with SMP [HyperThread]
options         SCHED_ULE               # ULE scheduler
#options        SCHED_4BSD              # 4BSD scheduler

############################################
# Custom Settings
############################################

##
# Firewall Tunneup
##
#device carp    # Just if i would do a HA (High Availability)

options IPFIREWALL
options IPFIREWALL_FORWARD      #enable transparent proxy support
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options IPFIREWALL_DEFAULT_TO_ACCEPT

options IPDIVERT

options DUMMYNET

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
options ALTQ_NOPCC  # just for SMP builds

##
# Squid Tunneup
# pagesize of FreeBSD 6.1 --> 4096
##
options VFS_AIO

##
# System V Resources
##
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores

options NMBCLUSTERS=131072 # 128 *1024
options MAXDSIZ=(512UL*1024*1024) # Quando houver 1 Gb de mem aqui vai 
pra 1024
options MAXSSIZ=(64UL*1024*1024) #  E aqui vai pra 128
options DFLDSIZ=(512UL*1024*1024) # 1024 tb!

##
# Message Queues [Based on Squid FAQ]
##
option MSGMNB=131072 # Number of bytes in a queue
option MSGMNI=64 # Need to be at least 2 times the number of cache_dir 
entries in the squid
option MSGSSZ=128 # Size of the message segment in a queue
option MSGTQL=8192 # Number of max queue identifiers versus 128 messages 
per queue (is the high mark of performance of messages per queue)
option MSGSEG=1024 # Number of messages segments
#
##

##
# Shared Memory [Based on Squid FAQ]
##
options SHMMNI=64 # The half of the message queues at least [1 for each 
cache_dir]
options SHMALL=16384 #
options SHMMAX=(2UL*1024*1024) # 16 Mb de shared memory
options SHMSEG=32

##
# Performance Tunneup
# Is Hyper Threading enabled at the BIOS? yes
##
maxusers 512 # Just some users... not so much
options SMP                     # Symmetric MultiProcessor Kernel
options MPTABLE_FORCE_HTT       # Enable HTT CPUs with the MP Table
options HZ=2000
options DEVICE_POLLING

 - Uma vez recompilado o kernel sem problemas e instalado o novo (boot) 
vamos ao squid
 - Dentro do diretorio do ports do squid novo (/usr/ports/www/squid26) 
[Squid 2.6], vamos configurar as opcoes:
    #make config
    + Marcando: SQUID_DELAY_LOOPS, SQUID_SNMP, SQUID_CARP, 
SQUID_DNS_HELPER, SQUID_HTCP, SQUID_CACHE_DIGESTS, SQUID_WCCP, 
SQUID_WCCPV2, SQUID_IDENT, SQUID_REFERER_LOG, SQUID_USERAGENT_LOG, 
SQUID_ARP_ACL, SQUID_AUFS, SQUID_COSS, SQUID_KQUEUE, SQUID_LARGEFILE, 
SQUID_STACKTRACES
 - Agora antes de fazer a chamada para compilacao vamos dar mais algumas 
opcoes pro processo de build do squid:
    --enable-storeio="diskd,ufs,coss,aufs,null" # Habilitando todos os 
schemas de storage
    --enable-removal-policies="lru,heap" # Habilitando politicas de 
renovacao de cache avancadas
    --with-pthreads # Nao custa informar que quero posix threads
    --with-aio # Asynchronous IO
    --enable-coss-aio-ops # COSS + Async IO
    + Na chamada para a compilacao fica entaum:
    # make SQUID_CONFIGURE_ARGS="--enable-dlmalloc 
--enable-storeio=diskd,ufs,coss,aufs,null 
--enable-removal-policies=lru,heap --enable-coss-aio-ops --with-pthreads 
--with-aio"
 - Como o pacote ficou show de bola (pelo menos tah funfando Proxy 
Transparente com DiskD [Ainda naum fiz metricas, alguem se habilita a me 
ajudar nisso???])
    # make package
 - Agora o que muda no arquivo de configuracao do squid para ele 
entender entaum a regra de firewall para proxy transparente?
    http_port 3128 transparent # Isso faz o squid esperar por pacotes 
desvidados
    + Claro que aqui tem as outras configuracoes do squid, mas vow 
omitila-las por que naum eh o meu objetivo aqui
 - Falta o firewall
    ipfw add 400 forward 127.0.0.1,3128 tcp from any to any dst-port 80 
via xl1 setup keep-state
   

Bom, acho que isso esclarece algumas dificuldades que o pessoal teve jah 
na lista.
Queria transformar este pequeno "recipe" em um howto, mas preciso de uma 
ajudinha tambem [eh, tah feio a coisa, toh meio sem tempo], se alguem puder.
   
Ahh, para informaçoes sobre a maquina que tah rodando isso:
    IBM x206M
    Pentium4 HT 3.2GHz
    512Mb de Ram [hum... isso vai aumentar, mas ainda naum eh o caso]
    80 Gb de HD (Sata)  

Pessoal, desculpem o texto meio baguncado, mas toh meio na correria, 
queria escrever isso jah alguns dias, espero que ajude a todos...

Abraços,

-- 
Flávio Alexsandro Silva
"Unix is user friendly. It's just selective about who its friends are."
"Linux is for people who hate Windows.
BSD is for people who love UNIX."



Mais detalhes sobre a lista de discussão freebsd