由于最近要對公司網(wǎng)絡進行優(yōu)化,經(jīng)過研究使用squid對網(wǎng)絡進行正向代理來增加速度.
一、squid命令
平時常用的squid的常用操作有八個(該版本也是網(wǎng)上來回轉(zhuǎn)載較多的):
1、初始化squid.conf 里配置的cache目錄
/App/squid/sbin/squid-z//初始化緩存空間
如是想觀察整個過程,請增加-X參數(shù),即:squid -zX 。如果有錯誤提示,請檢查你的 cache目錄的權限。
2、對squid.conf排錯,即驗證squid.conf的語法和配置。
/App/squid/sbin/squid-k parse
如果squid.conf 有語法或配置錯誤,這里會返回提示。如果沒有返回,如果沒有返回則啟動成功
3、在前臺啟動squid,并輸出啟動過程。
/App/squid/sbin/squid-N-d1
如果有到 ready to server reques,恭喜,啟動成功。然后 ctrl + c,停止squid,并以后臺運行的方式啟動它。
4、啟動squid在后臺運行。
/App/squid/sbin/squid-s
啟動squid,并將日志記錄到syslog進程。
5、停止 squid
/App/squid/sbin/squid-k shutdown
最安全的停止squid的方法,另外還有 -k interrupt 與-k kill命令也用于關閉squid,其之間的區(qū)別會在squid的參數(shù)中講到。
6、重引導修改過的 squid.conf
/App/squid/sbin/squid-k reconfigure//載入新的配置文件
這個估計用的時候比較多,當你發(fā)現(xiàn)你的配置有不盡你意的時候,可以隨時修改squid.conf,然后別忘記對你的 squid.conf排錯,然后再執(zhí)行此指令,即可讓squid重新按照你的 squid.conf 來運行。
7、輪循日志
/App/squid/sbin/squid-k rotate
每次執(zhí)行squid -k rotate時,Squid輪循下列文件:cache.log, access.log, store.log, useragent.log (假如已激活), 以及referer.log (假如已激活)。
同時,Squid也會創(chuàng)建最新版本的swap.state文件。然而請注意,swap.state不會以數(shù)字擴展形式來輪轉(zhuǎn)。
另外,要特別提示一下swap.state文件。當squid應用運行了一段時間以后,cache_dir對應的swap.state文件就會變得越來越大,里面的無效接口數(shù)據(jù)越來越多,這可能在一定程度上影響squid的響應時間,此時我們可以使用rotate命令來使squid清理swap.state里面的無效數(shù)據(jù),減少swap.state的大小。
8、把squid添加到系統(tǒng)啟動項
編輯 /etc/rc.d/rc.local?添加如下行:
/App/squid/sbin/squid-sD
9、squid_start腳本
/usr/local/squid/sbin/squid-sD && squid -sD
10、自制啟動腳本
#!/bin/bash
case $1 in
start)
/usr/local/squid/sbin/squid -s
;;
stop)
/usr/local/squid/sbin/squid -k shutdown
;;
easc
11、計劃任務運行輪訓日志
squid -k rotate//日志輪訓
0 4 * * * * /usr/local/squid/sbin/squid -k rotate .//凌晨4點運行日志輪訓
二、訪問控制
1、ACL元素是squid的訪問控制的基礎。這里告訴你如何指定包括IP、端口、主機名、url匹配變量。每個ACL元素都有個名字在編寫訪問規(guī)則的時候需要引用,基本元素如下:
acl name type value1 value2 value3
acl workstation src 10.0.0./16
2、多數(shù)情況下,ACL元素列舉多個值??梢远鄠€acl使用多個名字,配置是等價
acl http_ports port 80 8000 8080
acl httpd_ports port 80
acl httpd_ports port 8000
acl httpd_ports port 8080
3、IP地址
使用對象:src,dst,myip
squid在ACL里指定ip地址時,可以以子網(wǎng)、地址范圍、域名等形式編寫。
acl foo src 10.0.0.0/24
acl foo src 10.0.0.0/255.255.255.0
acl foo src 10.0.0.1
4、主機名
指定主機名
acl xxx dstwww.cgmb.com.cn
5、匹配域名
指定域名
acl a dstdomain foo.com
acl b dstdomain foo.com
6、正則表達式
適用對象:srcdom_regex, dstdom_regex, url_regex, urlpath_regex, browser, referer_regex, ident_regex, proxy_auth_regex, req_mime_type, rep_mime_type
^字符匹配行或者字符開頭
^http:// . 表達式匹配任意http://開頭
\.jpg$ .? ? 表達式匹配jpg結尾,反斜杠為轉(zhuǎn)意符
實例:acl foo url_regex -i ^http://www? (-i 參數(shù)不區(qū)分大小寫)
7、TCP端口號
acl foo port 123
acl foo port 1024-5000
三、ACL類型
1.src
ip地址在訪問控制元素普遍使用,大部分站點使用ipl來做訪問限制,src類型指定客戶端ip源,也就是說,當src出現(xiàn)在acl控制列表里面時,squid將它與發(fā)布的請求ip做對比
單子網(wǎng):acl mynetwork src 192.168.0.0/24
多子網(wǎng):acl mynetwork src 192.68.0.1/24 10.0.0.0/24
2.dst
原始服務器地址
acl adserver dst 1.2.3.4/24
3.myip
myip指squid本身ip地址
acl admin myip 1.1.1.1
4.myport
squid加速器配置
acl accport myport 80
acl proxyport myport 3128
5.method請求類型
method acl 指請求http請求方法。GET、POST
acl purge method purge
acl localhost src 127.0.0.1
http_access allow purge localhost
http_access deny purge
6.proto
協(xié)議類型
acl FTP proto FTP
7.maxconn
每個用戶最大連接數(shù)
acl overconn maxconn 4
http_access deny overconn