Strona 1 z 1

SQUID - nie używa pamięci podręcznej na dysku

: 10 października 2008, 14:35
autor: TooMeeK
Serwer 1 - tu SQUID działa (siec na 100 + komputerów)

Serwer 1 - /etc/network/interfaces:

Kod: Zaznacz cały

This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

#DSL
allow-hotplug eth1
iface eth1 inet static
    address 83.x.x.x
    netmask 255.255.255.248
    gateway 83.x.x.x

#LAN
allow-hotplug eth2
iface eth2 inet static
    address 192.168.0.1
    netmask 255.255.255.0

# Interfejs pomocniczy
#allow-hotplug eth3
#iface eth3 inet static
#    address 192.168.0.2
#    netmask 255.255.255.0
Serwer 1 - /etc/init.d/firewall:

Kod: Zaznacz cały

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
 
WAN="eth1"
ROUTER="yes"
NAT="83.x.x.x"
INTERFACES="lo eth1 eth2"
SERVICES="20 21 ssh 80 443 domain 1241 smtp 2000"
 
iptables=/usr/local/sbin/iptables
#transparent proxy - SQUID
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth2 -j DNAT --to-destination 192.168.0.1:8080
#ponizsze uzywane jest z DANSGUARDIANEM - wylaczone
#/sbin/iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth1 -j DNAT --to-destination 192.168.0.1:3128
Serwer 1 - /etc/squid/squid.conf:

Kod: Zaznacz cały

# NETWORK OPTIONS
# ------------------------------------------------
# Port na którym squid nasłuchuje i transparentność
http_port 8080 transparent
 
# OPTIONS WHICH AFFECT THE CACHE SIZE
# -------------------------------------------------
# Należy pamiętać iż to nie jest cała pamięć użyta przez squida
# Tu jest ustawienie dla mnie, a mam 1024 MB.
# cache_mem = (RAM - linux - apache - mysql - MTA - userzy - etc) / 3
cache_mem 194 MB
 
# Informacje na jakim poziomie zapełnienia ma pracować dyskowy cache
# Przy 80% demon powinien zacząć się martwić jego wymianą (low) lub agresywnie wziąć się do roboty (high)
# przy pełnym zapełnieniu cache.
cache_swap_low 80%
cache_swap_high 100%
 
# LFUDA ma hit rate mniejszy, a byte hit o kilkanaście procent większy od GDSF.
# Zatem ustawiamy politykę LFUDA dla dysku (optymalizacja dla byte hit ratio)
# i GDSF dla pamięci (zatrzymuje w cache niewielkie często używane obiekty).
# Jeśli używamy polityki LFUDA dla dysku poniższy parametr należy zwiększyć,
# w celu zmaksymalizowania byte hit.
maximum_object_size 800 MB
# Poniżej tej wartości obiekty NIE są zachowywane na dysku.
minimum_object_size 0 KB
maximum_object_size_in_memory 128 KB
ipcache_size 16384
fqdncache_size 0
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
 

# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ---------------------------------------------
# Chce mieć 6GB cache (mam na dysku 16GB wolnego)
# Liczba środkowa w parametrze cache_dir to liczba katalogów pierwszego poziomu.
# Wyliczamy ją dzieląc miejsce przeznaczone na cache przez średnią wielkość obiektu,
# a nastepnie wynik jeszcze raz dzielimy przez 32. Przykładowo:
# Liczba katalogów pierwszego poziomu = (6144 / (16 * 32))
#cache_dir ufs /usr/local/squid/var/cache 6144 12 256
cache_dir ufs /var/spool/squid 20000 12 256
# Logi (Permanentna inwigilacja + wyłączenie logów niepotrzebnych ani mi, ani squidowi).
# Wyłączenie logowania wpływa na wydajność systemu.
#cache_log /dev/null
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
 
# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
# -------------------------------------------------------
dns_nameservers 192.168.0.1 194.204.159.1 194.204.152.34

# OPTIONS FOR TUNING THE CACHE
# --------------------------------------------------------
# Reguły odświeżania. Parametry po kolei
# 1. Url
# 2. Minimalny wiek obiektu w minutach
# 3. Maksymalny stosunek wieku obiektu do czasu od ostatniej modyfikacji
# 4. Maksymalny wiek obiektu w minutach
# Proponuję usunąć linijkę z uporem maniaka lansowaną w necie ^gopher: 1440 0% 1440.
# Znasz kogoś kto używa świstaka w XXI w?
# Kolejne linijki były skuteczne w 2005 roku. Odkąd Microsoft wprowadził ograniczenia
# dla niezarejestrowanych kopii ruch zmalał 200 krotnie :)
refresh_pattern -i \.(gif|jpg|jpeg|png|html|bmp)   0   50%    7200 reload-into-ims
refresh_pattern -i \.(zip|gz|iso|bz2|exe|rar|mp3|mpg|avi|wmv|vqf|ogg)   43200 100%    43200   reload-into-ims
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll)     43200    100% 43200   reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll) 43200   100% 43200   reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll) 43200 100% 43200 reload-into-ims
refresh_pattern symantecliveupdate.com/.*\.(zip|exe)    43200    100% 43200   reload-into-ims
refresh_pattern windowsupdate.com/.*\.(cab|exe)         43200   100% 43200   reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe)    43200   100%    43200   reload-into-ims
refresh_pattern avast.com/.*\.(vpu|vpaa)    43200   100%    43200       reload-into-ims
refresh_pattern .               0       20%     4320
 
# TIMEOUTS
# ----------------------------------------------
half_closed_clients off
 
# ACCESS CONTROLS
# -----------------------------------------------
# maxconn - maksymalna ilość jednoczesnych połączeń z jednego adresu,
# aby zadziałało nie zmieniać difoltu dla client_db
acl all src 0.0.0.0/0.0.0.0
acl siec src 192.168.0.0/255.255.255.0
acl ZA-DUZO maxconn 50
http_access deny ZA-DUZO siec
#follow_x_forwarded_for allow siec
http_access allow siec
 
acl Safe_ports port 80 # http
acl Safe_ports port 22 # ssh
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
#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
 
http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#http_access deny !SSL_ports
 
#YOUTUBE - cachowanie filmikow
# Break HTTP standard for flash videos. Keep them in cache even if asked not to.
refresh_pattern -i \.flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
# Apparently youtube.com use 'Range' requests
# - not seen, but presumably when a video is stopped for a long while then resumed, (or fast-forwarded).
# - convert range requests into a full-file request, so squid can cache it
# NP: BUT slows down their _first_ load time.
quick_abort_min -1 KB
# Also videos are LARGE; make sure you aren't killing them as 'too big to save'
# - squid defaults to 4MB, which is too small for videos and even some sound files
# maximum_object_size 4 GB
# - to ustawienie juz jest
# Let the clients favorite video site through with full caching
# - they can come from any of a number of youtube.com subdomains.
# - this is NOT ideal, the 'merging' of identical content is really needed here
acl youtube dstdomain .youtube.com
cache allow youtube
# Do all the above BEFORE blocking dynamic caching
# - Not required. Just recommended from general squid.conf
# kept to demonstrate that the above go before this.
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
 
#ustawienia dla serwisu Wrzuta
refresh_pattern -i \.(mp3|flv) 10080 90% 999999 ignore-no-cache override-expire ignore-private
acl wrzuta dstdomain .wrzuta.pl
cache allow wrzuta
 
#acl blok_plikow urlpath_regex "/usr/local/squid/etc/pliki.acl"
#acl blok_reklam url_regex "/usr/local/squid/etc/reklamy.acl"
 
#acl blok_plikow urlpath_regex "/usr/local/squid/etc/pliki.acl"
#acl blok_reklam url_regex "/usr/local/squid/etc/reklamy.acl"
 
# ADMINISTRATIVE PARAMETERS
# ----------------------------------------------------
visible_hostname squid.firma.pl
 
# MISCELLANEOUS
# -----------------------------------------------------
# Anonimowość dla użytkownikow za natem - squid ustawia w nagłówku HTTP/1.1
# pole 'X-Forwarded-For: unknown' zamiast 'X-Forwarded-For: 10.10.10.171'.
# Więcej o tym: [url]http://www.squid-cache.org/Doc/FAQ/FAQ-4.html#ss4.18[/url]
forwarded_for off
# Wyłączenie logowania zapytań ICP z innych serwerów web cache
log_icp_queries off
store_avg_object_size 16 KB
store_objects_per_bucket 36
# Włączenie buforowania dla logów zapisywanych przy pomocy funkcji stdio (cache_log)
buffered_logs on
reload_into_ims on
acl FTP proto FTP
always_direct allow FTP

strip_query_terms off
Serwer 2 - /etc/network/interfaces:

Kod: Zaznacz cały

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Interfejs zewnetrzny
allow-hotplug eth0
iface eth0 inet manual

# Interfejs wewnetrzny
allow-hotplug eth1
iface eth1 inet static
        address 10.0.0.1
        netmask 255.255.255.0

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

auto eth0
Serwer 2 - /etc/init.d/firewall:

Kod: Zaznacz cały

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
# Services that the system will offer to the network
TCP_SERVICES="22 80"
UDP_SERVICES=""
# Services the system will use from the network
REMOTE_TCP_SERVICES="" # web browsing
REMOTE_UDP_SERVICES="" # DNS
# Network that will be used for remote mgmt
# (if undefined, no rules will be setup)
# NETWORK_MGMT=192.168.0.0/24
# Port used for the SSH service, define this is you have setup a
# management network but remove it from TCP_SERVICES
# SSH_PORT="22"
WAN="ppp0"
LAN="eth1"
NAT="192.168.77.1"

#SQUID - otwarcie portu 8080 i przekierowanie ruchu z 80 na 8080
#iptables -t nat -A PREROUTING -p tcp --dport 80 -i ppp0 -j DNAT --to-destination 10.0.0.1:8080      - nie dziala
#ponizsze działa, ale cachuje tylko do pamieci RAM a na dysku nie ma nic
#sprawdzilem uprawnienia do /var/spool/squid i ma je user "proxy"
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to-destination 10.0.0.1:8080
Serwer 2 - /etc/squid/squid.conf:

Kod: Zaznacz cały

# NETWORK OPTIONS
# -------------------------------------------
# Port na którym squid nasłuchuje i transparentność
http_port 10.0.0.1:8080 transparent
#http_port 127.0.0.1:8080 transparent

# OPTIONS WHICH AFFECT THE CACHE SIZE
# ---------------------------------------------
# Należy pamiętać iż to nie jest cała pamięć użyta przez squida
# Tu jest ustawienie dla mnie, a mam 1024 MB.
# cache_mem = (RAM - linux - apache - mysql - MTA - userzy - etc) / 3
cache_mem 128 MB

# Informacje na jakim poziomie zapełnienia ma pracować dyskowy cache
# Przy 80% demon powinien zacząć się martwić jego wymianą (low) lub agresywnie wziąć się do roboty (high)
# przy pełnym zapełnieniu cache.
cache_swap_low 80%
cache_swap_high 100%

# LFUDA ma hit rate mniejszy, a byte hit o kilkanaście procent większy od GDSF.
# Zatem ustawiamy politykę LFUDA dla dysku (optymalizacja dla byte hit ratio)
# i GDSF dla pamięci (zatrzymuje w cache niewielkie często używane obiekty).
# Jeśli używamy polityki LFUDA dla dysku poniższy parametr należy zwiększyć,
# w celu zmaksymalizowania byte hit.
maximum_object_size 100 MB
# Poniżej tej wartości obiekty NIE są zachowywane na dysku.
minimum_object_size 0 KB
maximum_object_size_in_memory 128 KB
ipcache_size 16384
fqdncache_size 0
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF


# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ---------------------------------------------
# Chce mieć 6GB cache (mam na dysku 16GB wolnego)
# Liczba środkowa w parametrze cache_dir to liczba katalogów pierwszego poziomu.
# Wyliczamy ją dzieląc miejsce przeznaczone na cache przez średnią wielkość obiektu,
# a nastepnie wynik jeszcze raz dzielimy przez 32. Przykładowo:
# Liczba katalogów pierwszego poziomu = (6144 / (16 * 32))
#cache_dir ufs /usr/local/squid/var/cache 6144 12 256
cache_dir ufs /var/spool/squid 4000 12 256
# Logi (Permanentna inwigilacja + wyłączenie logów niepotrzebnych ani mi, ani squidowi).
# Wyłączenie logowania wpływa na wydajność systemu.
#cache_log /dev/null
#cache_store_log none
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/storage.log

# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
# ------------------------------------------------
dns_nameservers 10.0.0.2 193.39.71.34 213.134.134.134

# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------
# Reguły odświeżania. Parametry po kolei
# 1. Url
# 2. Minimalny wiek obiektu w minutach
# 3. Maksymalny stosunek wieku obiektu do czasu od ostatniej modyfikacji
# 4. Maksymalny wiek obiektu w minutach
# Proponuję usunąć linijkę z uporem maniaka lansowaną w necie ^gopher: 1440 0% 1440.
# Znasz kogoś kto używa świstaka w XXI w?
# Kolejne linijki były skuteczne w 2005 roku. Odkąd Microsoft wprowadził ograniczenia
# dla niezarejestrowanych kopii ruch zmalał 200 krotnie :)
refresh_pattern -i \.(gif|jpg|jpeg|png|html|bmp)   0   50%    7200 reload-into-ims
refresh_pattern -i \.(zip|gz|bz2|exe|rar|mp3|mpg|avi|wmv|vqf|ogg)   43200 100%    43200   reload-into-ims
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll)     43200    100% 43200   reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll) 43200   100% 43200   reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll) 43200 100% 43200 reload-into-ims
refresh_pattern symantecliveupdate.com/.*\.(zip|exe)    43200    100% 43200   reload-into-ims
refresh_pattern windowsupdate.com/.*\.(cab|exe)         43200   100% 43200   reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe)    43200   100%    43200   reload-into-ims
refresh_pattern avast.com/.*\.(vpu|vpaa)    43200   100%    43200       reload-into-ims
refresh_pattern .               0       20%     4320

# TIMEOUTS
# --------------------------------------------
half_closed_clients off

# ACCESS CONTROLS
# ----------------------------------------------
# maxconn - maksymalna ilość jednoczesnych połączeń z jednego adresu,
# aby zadziałało nie zmieniać difoltu dla client_db
acl all src 0.0.0.0/0.0.0.0
acl siec src 10.0.0.0/255.255.255.0
acl siec2 src 10.0.0.0/255.0.0.0
acl ZA-DUZO maxconn 50
http_access deny ZA-DUZO
#follow_x_forwarded_for allow siec
http_access allow siec siec2

acl Safe_ports port 80 # http
acl Safe_ports port 22 # ssh
acl Safe_ports port 21 # ftp
#acl Safe_ports port 443 # https
#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

http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#http_access deny !SSL_ports

#YOUTUBE - cachowanie filmikow
# Break HTTP standard for flash videos. Keep them in cache even if asked not to.
refresh_pattern -i \.flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private
# Apparently youtube.com use 'Range' requests
# - not seen, but presumably when a video is stopped for a long while then resumed, (or fast-forwarded).
# - convert range requests into a full-file request, so squid can cache it
# NP: BUT slows down their _first_ load time.
quick_abort_min -1 KB
# Also videos are LARGE; make sure you aren't killing them as 'too big to save'
# - squid defaults to 4MB, which is too small for videos and even some sound files
# maximum_object_size 4 GB
# - to ustawienie juz jest
# Let the clients favorite video site through with full caching
# - they can come from any of a number of youtube.com subdomains.
# - this is NOT ideal, the 'merging' of identical content is really needed here
acl youtube dstdomain .youtube.com
cache allow youtube
# Do all the above BEFORE blocking dynamic caching
# - Not required. Just recommended from general squid.conf
# kept to demonstrate that the above go before this.
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

#ustawienia dla serwisu Wrzuta
refresh_pattern -i \.(mp3|flv) 10080 90% 999999 ignore-no-cache override-expire ignore-private
acl wrzuta dstdomain .wrzuta.pl
cache allow wrzuta

#acl blok_plikow urlpath_regex "/usr/local/squid/etc/pliki.acl"
#acl blok_reklam url_regex "/usr/local/squid/etc/reklamy.acl"

#acl blok_plikow urlpath_regex "/usr/local/squid/etc/pliki.acl"
#acl blok_reklam url_regex "/usr/local/squid/etc/reklamy.acl"

# ADMINISTRATIVE PARAMETERS
# ----------------------------------------------
visible_hostname squid.firma2.local

# MISCELLANEOUS
# ------------------------------------------------
# Anonimowość dla użytkownikow za natem - squid ustawia w nagłówku HTTP/1.1
# pole 'X-Forwarded-For: unknown' zamiast 'X-Forwarded-For: 10.10.10.171'.
# Więcej o tym: [url]http://www.squid-cache.org/Doc/FAQ/FAQ-4.html#ss4.18[/url]
forwarded_for off
# Wyłączenie logowania zapytań ICP z innych serwerów web cache
log_icp_queries off
store_avg_object_size 16 KB
store_objects_per_bucket 36
# Włączenie buforowania dla logów zapisywanych przy pomocy funkcji stdio (cache_log)
buffered_logs on
reload_into_ims on
acl FTP proto FTP
always_direct allow FTP

strip_query_terms off
Moje pytania:
  1. Czy ma znaczenie to, że serwerem DNS w przypadku Serwera 2 jest inny komputer? W DHCP jest oczywiscie adres tego drugiego komputera - 10.0.0.2
  2. Gdy wpisałem sobie ręcznie DNS 10.0.0.1 to jakby dopiero Squid dziala.
  3. Nie sa zapisywane zadne pliki do /var/spool/squid , squid dziala bo strony laduja sie szybciej i generuje jakies zapiski w /var/log/storage.log, natomiast RAM zapelnia sie do 100% i serwer staje
  4. Dlaczego nic nie zapisuje sie do dyskowego cache?
    Serwer 1 ma 1 GB RAMu
    Serwer 2 ma 192 MB RAMu


[ Dodano: 2008-11-05, 13:28 ]
Ponawiam pytanko...... robi się to pilne :/

[ Dodano: 2008-12-08, 13:25 ]
złe ustawienie procentowe użycia pamięci przez SQUD............ poprawiłem