Moin Jungs,
Gestern Abend dachte ich mir, ein HTTP-Proxy mit einem Cache auf meinem Fileserver wäre noch eine ganz nette Idee um den Seitenaufbau von oft besuchten Seiten etwas zu beschleunigen.
Positiver Nebeneffekt wäre auch die geringere Belastung meiner Internetleitung.
Server-OS: Debian Lenny 32bit
Also bin hab ich mir ein paar Anleitungen durchgelesen, die ich so gefunden habe, und hab dann einfach mal angefangen.
Dann habe ich mir die default-config kopiert und in der Kopie meine Änderungen vorgenommen. Dabei bin ich die komplette Config einmal durchgegangen, und habe alles rausgeworfen, was für mich uninteressant war.
Squid soll als reiner http-Proxy fungieren, er wird auf den anderen System also nur im Webbrowser eingetragen, FTP usw. sollen weiterhin direkt laufen.
Beim ersten Start bin ich gleich auf Probleme mit den acl-Regeln gestoßen und erhielt ein paar Versuche immer nur "Access denied".
Um das Problem vorerst zu umgehen, habe ich einfach mal die deny-Regeln rausgeworfen und "http_access allow all" reingehauen, das hat dann auch funktioniert.
Jetzt habe ich das Problem, dass Squid scheinbar keine Dateien aus dem Cache rausrückt, sondern immer nur über "DIRECT" die Sachen neu aus dem Internet holt.
squid.conf
/var/log/squid/access.log
Zwischen den beiden Zugriffen habe ich meinen Browser einmal geschlossen und ca. 30 Sekunden gewartet, bis ich die Seite erneut aufgerufen habe.
Soweit ich das richtig verstanden habe, sollte bei einem Zugriff auf breits im Cache eingelagerste Dateien etwas in der Richtung "TCP_HIT" oder "TCP_IMS_HIT" liefern, außerdem sollte dann hinten statt "DIRECT" ein "NONE" stehen und daher auch keine IP mehr.
Meine Frage ist jetzt, wo ist der entscheidende Punkt in der squid.conf, der bei mir dieses Problem verursacht ?
Das Verzeichnis für den Cache ist /usr/share/squid/cache und hat einen 'chmod -R 777' bekommen, mag sein, dass dies ein Sicherheitsproblem darstellt, ich bin wie gesagt noch am Testen, wo die Ursache liegen könnte.
Edit: Update, nun auch noch folgende Einträge im Log sichtbar:
TCP_SWAPFAIL_MISS
The object was believed to be in the cache, but could not be accessed.
Habe die rechte für das Verzeichnis nochmals aktualisiert, aber es will immernoch nicht so recht.
MfG
foxxx
Gestern Abend dachte ich mir, ein HTTP-Proxy mit einem Cache auf meinem Fileserver wäre noch eine ganz nette Idee um den Seitenaufbau von oft besuchten Seiten etwas zu beschleunigen.
Positiver Nebeneffekt wäre auch die geringere Belastung meiner Internetleitung.
Server-OS: Debian Lenny 32bit
Also bin hab ich mir ein paar Anleitungen durchgelesen, die ich so gefunden habe, und hab dann einfach mal angefangen.
Code:
apt-get update
apt-get install squid squid-common squid-cgi squidclient
Dann habe ich mir die default-config kopiert und in der Kopie meine Änderungen vorgenommen. Dabei bin ich die komplette Config einmal durchgegangen, und habe alles rausgeworfen, was für mich uninteressant war.
Squid soll als reiner http-Proxy fungieren, er wird auf den anderen System also nur im Webbrowser eingetragen, FTP usw. sollen weiterhin direkt laufen.
Beim ersten Start bin ich gleich auf Probleme mit den acl-Regeln gestoßen und erhielt ein paar Versuche immer nur "Access denied".
Um das Problem vorerst zu umgehen, habe ich einfach mal die deny-Regeln rausgeworfen und "http_access allow all" reingehauen, das hat dann auch funktioniert.
Jetzt habe ich das Problem, dass Squid scheinbar keine Dateien aus dem Cache rausrückt, sondern immer nur über "DIRECT" die Sachen neu aus dem Internet holt.
squid.conf
Code:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.2.0/255.255.255.0 # RFC1918 possible internal network
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
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
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost localnet
http_access deny manager
http_access allow purge localhost localnet
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports localnet
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 192.168.2.23:8080
hierarchy_stoplist cgi-bin ?
cache_mem 512 MB
maximum_object_size_in_memory 8 KB
memory_replacement_policy lru
cache_replacement_policy lru
cache_dir ufs /usr/share/squid/cache 8192 16 256
store_dir_select_algorithm least-load
max_open_disk_fds 0
minimum_object_size 0 KB
maximum_object_size 20480 KB
cache_swap_low 90
cache_swap_high 95
update_headers on
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
#logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]
#logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh
#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_access_log /var/log/squid/cache_access.log
logfile_daemon /usr/lib/squid/logfile-daemon
logfile_rotate 0
emulate_httpd_log off
log_ip_on_direct on
mime_table /usr/share/squid/mime.conf
log_mime_hdrs off
pid_filename /var/run/squid.pid
debug_options ALL,1
log_fqdn off
client_netmask 255.255.255.255
strip_query_terms on
buffered_logs off
netdb_filename /var/spool/squid/logs/netdb.state
storeurl_rewrite_children 5
storeurl_rewrite_concurrency 0
url_rewrite_children 5
url_rewrite_concurrency 0
url_rewrite_host_header on
redirector_bypass off
negative_ttl 5 minutes
positive_dns_ttl 6 hours
location_rewrite_children 8
location_rewrite_concurrency 0
max_stale 1 week
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
read_ahead_gap 16 KB
negative_dns_ttl 1 minute
range_offset_limit 0 KB
minimum_expiry_time 60 seconds
store_avg_object_size 26 KB
store_objects_per_bucket 20
request_header_max_size 40 KB
reply_header_max_size 40 KB
request_body_max_size 0 KB
via on
cache_vary on
collapsed_forwarding off
refresh_stale_hit 0 seconds
ie_refresh off
vary_ignore_expire off
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
request_entities off
relaxed_header_parser on
server_http11 off
ignore_expect_100 off
forward_timeout 4 minutes
connect_timeout 1 minute
peer_connect_timeout 30 seconds
read_timeout 15 minutes
request_timeout 5 minutes
persistent_request_timeout 2 minutes
client_lifetime 1 day
half_closed_clients on
pconn_timeout 1 minute
ident_timeout 10 seconds
shutdown_lifetime 30 seconds
cache_effective_user proxy
httpd_suppress_version_string off
umask 027
announce_period 0
httpd_accel_no_pmtu_disc off
delay_pools 0
delay_initial_bucket_level 50
client_persistent_connections on
server_persistent_connections on
persistent_connection_after_error off
detect_broken_pconn off
digest_generation on
digest_bits_per_entry 5
digest_rebuild_period 1 hour
digest_rewrite_period 1 hour
digest_swapout_chunk_size 4096 bytes
digest_rebuild_chunk_percentage 10
snmp_port 0
htcp_port 0
icp_port 0
log_icp_queries on
icp_hit_stale off
minimum_direct_hops 4
minimum_direct_rtt 400
netdb_low 900
netdb_high 1000
netdb_ping_period 5 minutes
max_filedescriptors 0
check_hostnames on
allow_underscore on
dns_nameservers 192.168.2.1
hosts_file /etc/hosts
memory_pools on
memory_pools_limit 50 MB
forwarded_for on
coredump_dir /var/spool/squid
visible_hostname fileserver.lan
/var/log/squid/access.log
Code:
1282736466.872 415 192.168.2.2 TCP_MISS/302 555 GET http://www.abload.de/img/2009-05-04-223845_1680ovcr.jpg - DIRECT/94.23.42.148 text/html
1282736533.001 366 192.168.2.2 TCP_MISS/302 555 GET http://www.abload.de/img/2009-05-04-223845_1680ovcr.jpg - DIRECT/94.23.42.148 text/html
Zwischen den beiden Zugriffen habe ich meinen Browser einmal geschlossen und ca. 30 Sekunden gewartet, bis ich die Seite erneut aufgerufen habe.
Soweit ich das richtig verstanden habe, sollte bei einem Zugriff auf breits im Cache eingelagerste Dateien etwas in der Richtung "TCP_HIT" oder "TCP_IMS_HIT" liefern, außerdem sollte dann hinten statt "DIRECT" ein "NONE" stehen und daher auch keine IP mehr.
Meine Frage ist jetzt, wo ist der entscheidende Punkt in der squid.conf, der bei mir dieses Problem verursacht ?
Das Verzeichnis für den Cache ist /usr/share/squid/cache und hat einen 'chmod -R 777' bekommen, mag sein, dass dies ein Sicherheitsproblem darstellt, ich bin wie gesagt noch am Testen, wo die Ursache liegen könnte.
Edit: Update, nun auch noch folgende Einträge im Log sichtbar:
Code:
1282741157.449 221 192.168.2.2 TCP_SWAPFAIL_MISS/304 414 GET http://www.hardwareluxx.de/community/images/buttons/ip.gif - DIRECT/83.246.70.206 -
TCP_SWAPFAIL_MISS
The object was believed to be in the cache, but could not be accessed.
Habe die rechte für das Verzeichnis nochmals aktualisiert, aber es will immernoch nicht so recht.
MfG
foxxx
Zuletzt bearbeitet: