1. Squid是什么椭蹄?
Squid是一個高性能的代理緩存服務器杨何,Squid支持FTP、gopher和HTTP協(xié)議哩陕。和一般的代理緩存軟件不同平项,Squid用一個單獨的赫舒、非模塊化的、I/O驅動的進程來處理所有的客戶端請求闽瓢。
Squid可運行在大多數(shù)Unix和OS/2版本的系統(tǒng)之上接癌,已知的可工作的有:Windows,AIX,Digital Unix扣讼,F(xiàn)reeBSD缺猛,HP-UX,Irix椭符,Linux荔燎,NetBSD,Nextstep销钝,SCO有咨,Solaris
初始版本 1996年7月
穩(wěn)定版本 3.5.27(2017年8月19日,?8天前)
預覽版本 4.0.21(2017年7月2日曙搬,?56天前)
2. 主要功能
- 緩存網(wǎng)站內容,以達到分擔源站壓力加快訪問速度的目的鸽嫂。
- 熱點緩存纵装,只緩存訪問熱度到達設定級別的網(wǎng)站內容。
- 合并回源据某,多個相同的請求只回源一次橡娄。
- ACL訪問控制,可針對源IP癣籽、目的地IP挽唉、域名、URL筷狼、訪問時間瓶籽、單一最大連接數(shù)限制訪問行為」〔模或通過外部程序驗證訪問者(proxy_auth)塑顺。
- 主要支持協(xié)議:HTTP、HTTPS俏险、FTP
- 網(wǎng)頁內容篡改严拒,可根據(jù)需求篡改網(wǎng)站內容。
- 網(wǎng)站頭部篡改竖独,可根據(jù)需求篡改請求頭部裤唠。
- 可針對不同的域名或url配置不同的緩存規(guī)則。
3. 應用場景
- 正向代理(本地網(wǎng)關)
- 正向代理的典型用途是為在防火墻內的局域網(wǎng)客戶端提供訪問Internet的途徑莹痢。
- 正向代理還可以使用緩存特性減少網(wǎng)絡使用率种蘸。
- 正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身墓赴,因此你必須采取安全措施以確保僅為經(jīng)過授權的客戶端提供服務。
- 透明代理(cdn劈彪,架設于網(wǎng)絡運營商主干機房)
- 提高各個地區(qū)訪問者的訪問速度竣蹦。
- 減少源站壓力。
- 減少網(wǎng)絡運營商的網(wǎng)間結算費用沧奴。
- 節(jié)省網(wǎng)絡運營商帶寬資源痘括。
- 反向代理(網(wǎng)站前端)
- 降低源站服務器的負載。
- 隱藏源站真實ip滔吠。
4. 緩存狀態(tài)日志
TCP_HIT
Squid發(fā)現(xiàn)請求資源的貌似新鮮的拷貝纲菌,并將其立即發(fā)送到客戶端。TCP_MISS
Squid沒有請求資源的cache拷貝疮绷。TCP_REFERSH_HIT(squid3.0改為TCP_REFRESH_UNMODIFIED)
Squid發(fā)現(xiàn)請求資源的貌似陳舊的拷貝翰舌,并發(fā)送確認請求到原始服務器。原始服務器返回304(未修改)響應冬骚,指示squid的拷貝仍舊是新鮮的椅贱。TCP_REF_FAIL_HIT
Squid發(fā)現(xiàn)請求資源的貌似陳舊的拷貝,并發(fā)送確認請求到原始服務器只冻。然而庇麦,原始服務器響應失敗,或者返回的響應Squid不能理解喜德。在此情形下山橄,squid發(fā)送現(xiàn)有cache拷貝(很可能是陳舊的)到客戶端。TCP_REFRESH_MISS(squid3.0改為TCP_REFRESH_MODIFIED)
Squid發(fā)現(xiàn)請求資源的貌似陳舊的拷貝舍悯,并發(fā)送確認請求到原始服務器航棱。原始服務器響應新的內容,指示這個cache拷貝確實是陳舊的萌衬。TCP_CLIENT_REFRESH_MISS
Squid發(fā)現(xiàn)了請求資源的拷貝饮醇,但客戶端的請求包含了Cache-Control: no-cache指令。Squid轉發(fā)客戶端的請求到原始服務器秕豫,強迫cache確認驳阎。TCP_IMS_HIT
客戶端發(fā)送確認請求,Squid發(fā)現(xiàn)更近來的馁蒂、貌似新鮮的請求資源的拷貝呵晚。Squid發(fā)送更新的內容到客戶端,而不聯(lián)系原始服務器沫屡。TCP_SWAPFAIL_MISS
Squid發(fā)現(xiàn)請求資源的有效拷貝饵隙,但從磁盤裝載它失敗。這時squid發(fā)送請求到原始服務器沮脖,就如同這是個cache丟失一樣金矛。TCP_NEGATIVE_HIT
在對原始服務器的請求導致HTTP錯誤時芯急,Squid也會cache這個響應。在短時間內對這些資源的重復請求驶俊,導致了否命中娶耍。negative_ttl 指令控制這些錯誤被cache的時間數(shù)量。請注意這些錯誤只在內存cache饼酿,不會寫往磁盤榕酒。下列HTTP狀態(tài)碼可能導致否定cache(也遵循于其他約束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。TCP_MEM_HIT
Squid在內存cache里發(fā)現(xiàn)請求資源的有效拷貝故俐,并將其立即發(fā)送到客戶端想鹰。注意這點并非精確的呈現(xiàn)了所有從內存服務的響應。例如药版,某些cache在內存里辑舷,但要求確認的響應,會以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式記錄槽片。TCP_DENIED
因為http_access或http_reply_access規(guī)則何缓,客戶端的請求被拒絕了。注意被http_access拒絕的請求在第9域的值是NONE/-还栓,然而被http_reply_access拒絕的請求碌廓,在相應地方有一個有效值。TCP_OFFLINE_HIT
當offline_mode激活時蝙云,Squid對任何cache響應返回cache命中氓皱,而不用考慮它的新鮮程度路召。TCP_REDIRECT
重定向程序告訴Squid產生一個HTTP重定向到新的URI(見11.1節(jié))勃刨。正常的,Squid不會記錄這些重定向股淡。假如要這樣做身隐,必須在編譯squid前,手工定義LOG_TCP_REDIRECTS預處理指令唯灵。NONE
無分類的結果用于特定錯誤贾铝,例如無效主機名。
UDP_HIT
Squid在cache里發(fā)現(xiàn)請求資源的貌似新鮮的拷貝埠帕。UDP_MISS
Squid沒有在cache里發(fā)現(xiàn)請求資源的貌似新鮮的拷貝垢揩。假如同一目標通過HTTP請求,就可能是個cache丟失敛瓷。請對比UDP_MISS_NOFETCH叁巨。UDP_MISS_NOFETCH
跟UDP_MISS類似,不同的是這里也指示了Squid不愿去處理相應的HTTP請求呐籽。假如使用了-Y命令行選項锋勺,Squid在啟動并編譯其內存索引時蚀瘸,會返回這個標簽而不是UDP_MISS。UDP_DENIED
因為icp_access規(guī)則庶橱,ICP查詢被拒絕贮勃。假如超過95%的到某客戶端的ICP響應是UDP_DENIED,并且客戶端數(shù)據(jù)庫激活了(見附錄A)苏章,Squid在1小時內寂嘉,停止發(fā)送任何ICP響應到該客戶端。若這點發(fā)生布近,你也可在cache.log里見到一個警告垫释。UDP_INVALID
Squid接受到無效查詢(例如截斷的消息、無效協(xié)議版本撑瞧、URI里的空格等)棵譬。Squid發(fā)送UDP_INVALID響應到客戶端。
5. squidclient是什么预伺?
squidclient是提供用于檢索URL的命令行工具订咸。 專為測試任何HTTP 0.9,1.0或1.1 Web服務器或代理而設計。 該工具可以與腳本組合酬诀,以執(zhí)行任何基本的HTTP操作脏嚷。 提供了一些用于訪問squid代理對象緩存和管理信息的附加功能。
6. 安裝aquidclient
- 在Debian或Ubuntu下
#apt-get install squidclient
- 在Redhat或Centos下
yum install squidclient
7.常用squidclient命令
squidclient -h #查看幫助
squidclient -p 80 mgr:info #取得squid運行狀態(tài)信息
squidclient -p 80 mgr:mem #取得squid內存使用情況
squidclient -p 80 mgr:objects #取得squid已經(jīng)緩存的列表(謹慎使用瞒御,量大時容易崩潰)
squidclient -p 80 mgr:diskd #取得squid的磁盤使用情況
squidclient -p 80 -m PURGE http://www.php-oa.com/static.php #強制更新某個url
squidclient -p 80 mgr:io #取得squid io情況
squidclient -p 80 mgr:ipcache #查看squid緩存的dns解析記錄
squidclient -p 80 mgr:info|grep Aver #查看端口連接數(shù)
squidclient http://www.baidu.com/100.html #測試訪問
squidclient -p 80 mgr:traffic #查看流量
squidclient -p 80 mgr:404 #取5分鐘內404錯誤請求的個數(shù)
squidclient -p 80 mgr:status #取5分鐘內各種返回碼的個數(shù)