squid 2 7 終極配置

2021-05-22 01:13:34 字數 3766 閱讀 7968

對於快取,試了好幾種,從squid 3.0 ,varnish , nginx 最後還是回歸了squid ,只不過這次選用了 squid 2.7 版本,squid 3.0在使用時併發量不如2.7的高,我們就曾出現如果squit程序執行時間太長,開啟時無法命中,而且有延時,varnish nginx 都可以用,不過個人覺得沒有squid 用著爽。以下是個人配置

首先編譯:

網上流傳著一種說法,使用tcmalloc 可以提高併發和效能,安裝 libunwind 庫(32位系統無需安裝),安裝tcmalloc 庫,接著開始編譯squid

./configure 加引數

修改原始碼路徑中的src/makefile ,找到其中的squid_ldadd、ldadd在其後加個-ltcmalloc(在執行時我發現unlinked 是不是也要加乙個-ltcmalloc,到時候就也可以使用這個庫了,因為makefile 中一項是unlinkd_ldadd,下次測試)

然後make,make install 完成

其實這一步網上有好多參考,具體的可以gg

其次配置:

這一步了沒有什麼好講的了就是平常的配置,作為個人配置,發現兩點

hierarchy_stoplist cgi-bin ?

acl query urlpath_regex cgi-bin /.php /? /.jsp /.cgi /.asp /.aspx

cache deny query

把關於問號的去除就行了

關於快取304 的引數,啟用這個

還有乙個是

refresh_pattern

這個引數夠多的,個人啟用了 reload-into-ims ignore-reload ignore-no-cache ignore-private (官方說啟用這幾個引數可能會出現一些問題,

不過應慎重修改,對於我們確實是出現了一些問題,302被快取了,導致更改跳轉不起作用,只好加了expires)

具體引數意義可以個人研究

如果404 錯誤太多的話,日誌出現的太頻繁,可以加大 negative_ttl ,預設是1分鐘

最後關於命中率:

可以根據squid 日誌記錄來統計,通常哪些頁面無法命中,然後查詢原因。

最後我們的cacti 監控中squid 命中在95%以上,操

最後是從網上找的squid 日誌中關於命中段中的記錄含義:

tcp_hit

squid發現請求資源的貌似新鮮的拷貝,並將其立即傳送到客戶端。

tcp_miss

squid沒有請求資源的cache拷貝。

tcp_refersh_hit

squid發現請求資源的貌似陳舊的拷貝,並傳送確認請求到原始伺服器。原始伺服器返回304(未修改)響應,指示squid的拷貝仍舊是新鮮的。

tcp_ref_fail_hit

squid發現請求資源的貌似陳舊的拷貝,並傳送確認請求到原始伺服器。然而,原始伺服器響應失敗,或者返回的響應squid不能理解。在此情形 下,squid傳送現有cache拷貝(很可能是陳舊的)到客戶端。

tcp_refresh_miss

squid發現請求資源的貌似陳舊的拷貝,並傳送確認請求到原始伺服器。原始伺服器響應新的內容,指示這個cache拷貝確實是陳舊的。

tcp_client_refresh_miss

squid發現了請求資源的拷貝,但客戶端的請求包含了cache-control: no-cache指令。squid**客戶端的請求到原始伺服器,強迫cache確認。

tcp_ims_hit

squid發現請求資源的有效拷貝,但從磁碟裝載它失敗。這時squid傳送請求到原始伺服器,就如同這是個cache丟失一樣。

tcp_negative_hit

在對原始伺服器的請求導致http錯誤時,squid也會cache這個響應。在短時間內對這些資源的重複請求,導致了否命中。 negative_ttl指令控制這些錯誤被cache的時間數量。請注意這些錯誤只在記憶體cache,不會寫往磁碟。下列http狀態碼可能導致否定 cache(也遵循於其他約束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。

tcp_mem_hit

squid在記憶體cache裡發現請求資源的有效拷貝,並將其立即傳送到客戶端。注意這點並非精確的呈現了所有從記憶體服務的響應。例如,某些 cache在記憶體裡,但要求確認的響應,會以tcp_refresh_hit, tcp_refresh_miss等形式記錄。

tcp_denied

因為http_access或http_reply_access規則,客戶端的請求被拒絕了。注意被http_access拒絕的請求在第9域的 值是none/-,然而被http_reply_access拒絕的請求,在相應地方有乙個有效值。

tcp_offline_hit

當offline_mode啟用時,squid對任何cache響應返回cache命中,而不用考慮它的新鮮程度。

tcp_redirect

重定向程式告訴squid產生乙個http重定向到新的uri(見11.1節)。正常的,squid不會記錄這些重定向。假如要這樣做,必須在編譯 squid前,手工定義log_tcp_redirects預處理指令。

none

無分類的結果用於特定錯誤,例如無效主機名。

相應於icp查詢,下列標籤可能出現在access.log檔案的第四域。

udp_hit

squid在cache裡發現請求資源的貌似新鮮的拷貝。

udp_miss

squid沒有在cache裡發現請求資源的貌似新鮮的拷貝。假如同一目標通過http請求,就可能是個cache丟失。請對比 udp_miss_nofetch。

udp_miss_nofetch

跟udp_miss類似,不同的是這裡也指示了squid不願去處理相應的http請求。假如使用了-y命令列選項,squid在啟動並編譯其記憶體 索引時,會返回這個標籤而不是udp_miss。

udp_denied

因為icp_access規則,icp查詢被拒絕。假如超過95%的到某客戶端的icp響應是udp_denied,並且客戶端資料庫啟用了(見附 錄a),squid在1小時內,停止傳送任何icp響應到該客戶端。若這點發生,你也可在cache.log裡見到乙個警告。

udp_invalid

squid接受到無效查詢(例如截斷的訊息、無效協議版本、uri裡的空格等)。squid傳送udp_invalid響應到客戶端。

Squid配置詳解

基本配置 安裝完成後,接下來要對squid 的執行進行配置 不是前面安裝時的配置 所有專案都在squid.conf中完成。squid自帶的squid.conf包括非常詳盡的說明,相當於一篇使用者手冊,對配置有任何疑問都可以參照解決。在這個例子 中,伺服器同時也是閘道器,內部網路介面eth0的ip位址...

優化squid配置

設定執行時的使用者和組許可權 cache effective user squid cache effective group squid 設定管理 資訊 visible hostname proxy.yxtc.edu.cn cache mgr email bye2000 yxtc.edu.cn e...

squid 安裝配置

size medium 安裝squid yum install squid 安裝的版本是squid 3.1.10 1.el6 2.3.i686。一 正向 1 先備份配置檔案 cp etc squid squid.conf etc squid squid.conf.bak 2 編輯配置檔案 vim e...