Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Squid jest jednym z najlepszych o ile nie najlepszym proxy dostępnym obecnie w sieci. Nie ma on dużych wymagań co do sprzętu. Warto jednak by serwer miał troszkę dostępnej pamięci. dla średniej sieci wystarczające jest 512 MB RAMu.
Zakładam że adres serwera to 192.168.0.254, LAN wisi na eth1 i proxy znajduje się na tej samej maszynie co router. Będziemy tylko zmieniać domyślne wartości w pliku squid.conf
[b]Instalacja i pierwsze uruchomienie.
[/b]
Zaczniemy od jego instalacji:
apt-get install squid
Po instalacji squid jest uruchomiony z domyślnymi parametrami. Zajmiemy się teraz ich zmianami pod nasze potrzeby.
Poinformujmy squida gdzie i jak ma działać:
http_port 192.168.0.254:3128 transparent
Jeszcze drobna zmiana w iptables:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
W zasadzie to wystarczy by proxy dzialało. Wystarczy przeładować squida poleceniem:
/etc/init.d/squid restart
[b]Drobna optymalizacja[/b]
W konfiguracji domyślnej squid zachowuje się całkiem dobrze. Oczywiście zastosujemy tu zasadę, że „zawsze może być lepiej”.
Dla średniej wielkości sieci wystarczy by squid zajmowal w pamięci 128 MB:
cache_mem 128 MB
Definiujemy maksymalny rozmiar pliku jaki będzie przechowywany przez squida:
maximum_object_size 10 MB
i maksymalny rozmiar jaki będzie przechowywany w pamięci:
maximum_object_size_in_memory 64 KB
Warto zdefiniować ilość przechowywanych wpisów FQDN:
fqdncache_size 8192
Teraz zajmiemy się jedną z ważniejszych spraw, mianowicie sposobem wymiany plików w cache'u.
Aby zapewnić jak efektywniejsze działanie ustawiamy:
cache_replacement_policy heap LFUDA memory_replacement_policy heap GDSF
Teraz sposób obsługi cache na dysku:
cache_dir diskd /var/spool/squid 256 16 256 Q1=90 Q2=110
Squid potrzebuje również dostępu do serwerów DNS:
dns_nameservers 127.0.0.1 194.114.149.10
Wpisujemy własne adresy ip DNS. Warto uruchomić własny serwer dns cache.
Dodajmy jeszcze regułki do odświeżania niektórych typów plików oraz w zależności od miejsca ich pochodzenia:
refresh_pattern -i \.(gif|jpg|jpeg|png|html|bmp) 4320 90% 43200 reload-into-ims refresh_pattern -i \.(zip|gz|bz2|exe|rar|mp3|mpg|avi|wmv|vqf|ogg|swf|js) 43200 100% 43200 reload-into-ims refresh_pattern -i http://.*\.windowsupdate\.com/.* 43200 100% 43200 reload-into-ims refresh_pattern -i http://download\.microsoft\.com/.* 43200 100% 43200 reload-into-ims refresh_pattern -i http://.*\.update.microsoft.com/.* 43200 100% 43200 reload-into-ims refresh_pattern -i http://au\.download\.windowsupdate\.com/.* 43200 100% 43200 reload-into-ims refresh_pattern -i http://windowsupdate\.microsoft\.com/.* 43200 100% 43200 reload-into-ims refresh_pattern -i http://download\.windowsupdate\.com/.* 43200 100% 43200 reload-into-ims refresh_pattern \? 0 90% 43200 reload-into-ims
Ustawiamy jeszcze polskie komunikaty o błędach ze squida
error_directory /usr/share/squid/errors/Polish
I to by było na tyle. Po wszystkich zmianach przeładowujemy squida:
/etc/init.d/squid restart
Oby Wam squid służył jak najdłużej;-)
Oczywiście, ten tekst nie wyczerpuje wszystkich możliwości squida. Ma on na celu wprowadzenie i ułatwienie startu z tym programem. Dla tych którzy chcą zgłębić squida odsyłam do oficjalnej dokumentacji projektu na stronie [url]http://www.squid-cache.org[/url]
Wszystkie sugestie i poprawki do tekstu bardzo mile widziane!!
[b]EDIT 2007-05-24:[/b]
Zmieniłem regułki odświeżania by lepiej współpracowały z aktualizacjami Windows i innych programów ze stajni MS. Oczywiście można również dodać regułki do programów AV.
Można to przyszpilić na forum?
Ostatnio edytowany przez kayo (2008-05-24 21:58:56)
Offline
fajny opis, ale zabraklo regolki [b]acl[/b]
acl all src 192.168.0.0/24
mozna rowniez dodac:
http_access allow all
i proponuje podpiac ten watek ;)
Offline
a ja mam innego typu pytanie ....
na kazdym laczu DSL jak uruchamialem squida (kazda wersja) TO smigal miooodzio ...
teraz uruchomilem na neostradzie i LIPA !! zalizcza totalny zwis, ze tylko odciecie pradu pomaga :D
ktos mial podobnie?
Offline
a ja mam innego typu pytanie ....
na kazdym laczu DSL jak uruchamialem squida (kazda wersja) TO smigal miooodzio ...
teraz uruchomilem na neostradzie i LIPA !! zalizcza totalny zwis, ze tylko odciecie pradu pomaga :D
ktos mial podobnie?[/quote]
Pokaż konfigurację i logi squida
Having a Windows 95 box hooked to the internet is akin to walking naked into a prison carrying a carton of cigarettes.
-----------------
jid: kayo77//gmail.com gg #1046710
Offline
ja mam taki maly problem.. postapilem wg tych krokow.. i windows cos nie bardzo chce pobierac aktualizacje.. pasek postepu lata.. na statystykach transferu nie ma..
w czym moze byc problem?
docelowo chcialbym uzyskac efekt przechowywania na serwerze przede wszystkim poprawek windows dzieki czemu nie bede musial ich pobierac na kazdej stacji za kazdym razem..
http://e.blink.pl/squid.conf
Ostatnio edytowany przez buli (2007-11-15 15:59:25)
Offline
http://www.linux-faqs.com/squid.php
Warto nie zapomnieć o dodaniu:
`ulimit -HSn 8192` w skrypcie startowym squida i
`echo "1024 32768" > /proc/sys/net/ipv4/ip_local_port_range` w skrypcie firewalla.
Offline
z moich obserwacji wynika jak by udalo mi sie jednak zmusic squia do wspolpracy z windows update (nie widac pobierania na statystylach lstata.. no chyba ze windows update ciagnie sie jakimis dziwnymi portami..)
komputer nie obciaza lacza podczas pobierania.. ponownie takich samych aktualizacji tylko ciagnie je z proxy ale mam wrazenie ze tak samo wolno jak by byly pobierane z online..
da sie to jakos podkrecic?
glownie zalezalo mi na tym aby skrocic czas instalacji aktualizacji..
Ostatnio edytowany przez buli (2007-11-16 12:16:32)
Offline
Witam.
[quote=buli]glownie zalezalo mi na tym aby skrocic czas instalacji aktualizacji..[/quote]
Oj, czasu instalacji chyba nie skrocisz bo zalezy on od maszyny na ktorej one sie instaluja.
Czas pobierania - tak, jesli faktycznie proxy przechowuje.
Może masz kolejkowanie tak ustawione ze tnie od strony lanu rowniez i squida.
pzdr.
Offline
[quote=mariaczi]Witam.
[quote=buli]glownie zalezalo mi na tym aby skrocic czas instalacji aktualizacji..[/quote]
Oj, czasu instalacji chyba nie skrocisz bo zalezy on od maszyny na ktorej one sie instaluja.
Czas pobierania - tak, jesli faktycznie proxy przechowuje.
Może masz kolejkowanie tak ustawione ze tnie od strony lanu rowniez i squida.
pzdr.[/quote]
nie lap za slowka.. to oczywiste ze chodzilo mi o czas pobierania..
mam wylaczony z kolejkowania serwer..
okazalo sie ze cache nie moze dzialac z transparentnym proxy..
Offline
Witam
To są wszystkie wpisy konfiguracyjne które mają być w squid.conf? Zrobiłem konfiga tak jak w opisie i po dodaniu wpisu do iptables przeglądarka nie otwiera mi stron w mojeje sieci lan.
Offline
moze port squid masz zamkniety na interfeisie podłoczonym do internetu ,sprawdz
Offline
szewczyk miałeś rację otwarłem porty 3128 tcp
iptables -A INPUT -s $LAN -d $SERWER -p tcp --dport 3128 -j ACCEPT iptables -I OUTPUT -s $LAN -d $SERWER -p tcp --sport 3128 -j ACCEPT
i następnie :
iptables -t nat -A PREROUTING -s $LAN -p tcp --dport 80 -j REDIRECT --to-ports 3128
Dzieki pozdrawiam ;)
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00089 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.8.139' WHERE u.id=1 |
0.00061 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.8.139', 1732504844) |
0.00039 | SELECT * FROM punbb_online WHERE logged<1732504544 |
0.00034 | SELECT topic_id FROM punbb_posts WHERE id=67228 |
0.00009 | SELECT id FROM punbb_posts WHERE topic_id=8742 ORDER BY posted |
0.00045 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=8742 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00086 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=8742 ORDER BY p.id LIMIT 0,25 |
0.00082 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=8742 |
Total query time: 0.00463 s |