Squid schreibt seine Daten in ein zu definierendes System-Verzeichnis, z.B. /cache/ für das folgende Unterzeichnisse erforderlich sind:
root:/ # mkdir /cache root:/ # mkdir /cache/data root:/ # mkdir /cache/logs root:/ # chown -R squid:nogroup /cache
Im Folgenden wird eine typische Konfiguration anhand einer Beispiel-Domain www.mydomain.com / 123.456.789.123 illustriert:
squid.conf
In der squid.conf sind einige Anpassungen gegenüber der Initialversion einzuführen:
http_port: Listen Port des Squid
# http_port 81 # Testsystem http_port 123.456.789.123:80 # Livesystem
maximum_object_size: maximale Größe der Dateien, die gecached werden.
Sinnvoll, wenn größere pdfs über Squid ausgeliefert werden
# maximum_object_size 4096 KB maximum_object_size 10 MB
cache_dir: Pfad zum Cache Speicher
Neben dem Pfad werden angegeben:
- Filesystemtyp
- Größe im MB
- Unterordner Ebene 1
- Unterordner Ebene2
# cache_dir ufs /var/cache/squid 100 16 256 cache_dir ufs /cache/data 50600 256 256
cache_access_log: Access Log
# cache_access_log /var/log/squid/access.log cache_access_log /cache/logs/access.log
Das Access.log kann optional im common log format wie Apache oder Squid Format geschrieben werden. Das Squid Format ist allerdings ausführlicher und kann zur weiteren Performanceverbesserung herangezogen werden.
#Default: emulate_httpd_log off # emulate_httpd_log on
cache_log
# cache_log /var/log/squid/cache.log cache_log /cache/logs/cache.log
cache_store_log
# cache_store_log /var/log/squid/store.log cache_store_log /cache/logs/store.log
cache_swap_log
cache_swap_log /cache/logs/swap.log
refresh_pattern (für JPEG-Bilder)
Jpeg-Bilder werden im Zope bei jeder Auslieferung neu berechnet und daher meist nicht gecached. Hier werden trotz möglicher anderer Werte alle jpg-Dateien 60 Minuten gespeichert.
#Suggested default: refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern .jpg 60 50% 4320 override-lastmod override-expire ignore-reload
refresh_pattern .jpeg 60 50% 4320 override-lastmod override-expire ignore-reload refresh_pattern . 0 20% 4320
Zugriffsregeln
Zugriffsregeln, die verhindern, dass Squid (im Beispiel IP 123.456.789.123) nicht von Dritten als Proxy missbraucht werden kann
acl localhost_d dst 127.0.0.1/255.255.255.255 acl webserver dst 123.456.789.123/255.255.255.255 acl Safe_ports port 80 # http Testsystem acl Safe_ports port 81 # http Livesystem http_access allow localhost_d http_access allow webserver
hostname
hostname im log oder in der Error-Page (im Beispiel www.mydomain.de)
# Default: # none visible_hostname www.mydomain.de
Proxy aktivieren
Squid als http Proxy aktivieren
# Default:
# httpd_accel_port 80 # Testsystem
httpd_accel_port 81 # Livesystem
httpd_accel_host virtual # Squid 2.5
# Default:
# httpd_accel_with_proxy off
httpd_accel_with_proxy on
Virtuelle Hosts Header
Header für virtuelle Hosts einschalten
#Default:
# httpd_accel_uses_host_header off httpd_accel_uses_host_header on
Squid User setzen
cache_effective_user squid
cache_effective_group nogroup
Squid starten
Falls Squid bereits lä uft ist dieser anzuhalten mit
/etc/init.d/squid stop
Anschliessend kann gestartet werden mit
/etc/init.d/squid start
Beim ersten Start legt das Skript die Unterordner für die gecachten Dateien im Verzeichnis /cache/data/ an. Für eine eventuelle Fehleranalyse benötigt man die entsprechenden Meldungen aus
- /var/log/messages
- /cache/logs
- Console-Meldung beim Startversuch