1. 程式人生 > >Squid 搭建正向代理詳細解釋

Squid 搭建正向代理詳細解釋

上述語句表示:任何包含?或cgi-bin字串的請求的URL不予快取直接把最終伺服器結果返回給使用者。

refresh_pattern
使用正則表示式來確定資源過期時間。
refresh_pattern <最小時間> <百分比> <最大時間>

如何判斷過期?

如下是squid的refresh_pattern演算法的簡單描述:
假如響應年齡超過refresh_pattern的max值,該響應過期;
假如LM-factor少於refresh_pattern百分比值,該響應存活;
假如響應年齡少於refresh_pattern的min值,該響應存活;
其他情況下,響應過期。

LM-factor演算法:
resource age =物件進入cache的時間-物件的last_modified
response age =當前時間-物件進入cache的時間
LM-factor=(response age)/(resource age)

這裡多介紹點額外選項:
設定DNS伺服器

  • dns_nameserers 8.8.8.8

日誌記錄

預設都在/var/log/squid目錄下,預設安裝時候就配置好了日誌輪轉,檢視/etc/logrotate.d/squid 如果自己更改日誌存放位置,最好重新配置自動輪轉,關於logrotate參看:logrotate使用

  • cache_log /var/log/cache.log:包括狀態性和除錯性訊息。如果啟動失敗、報錯,可以檢視本檔案。
  • cache_access_log /var/log/access.log:記錄每個終端請求日誌,可以設定為/dev/null 不記錄日誌。
  • cache_store_log /var/log/store.log:對大多數cache管理員來說很有用。包含了進入和離開快取的每個目標的記錄。

啟動squid PID 的使用者和群組,預設都為squid

  • cache_effective_user squid
  • cache_effective_group squid

記憶體緩衝大小:設定額外提供多少記憶體給squid使用。
cache_mem 20M

總記憶體佔用計算方法

squid自身程序佔用(10~20M)+ Cache目錄放在記憶體的索引(500M目錄大約20M索引)+cache_mem
官方建議可用記憶體大小要是這裡計算量的兩倍以上。因此這裡的cache_mem不能設定太大。當然記憶體充足的話,越大越好。

Cache目錄放在記憶體的索引(500M目錄大約20M索引)這裡其實是估算,沒法準確計算,一般64位系統中,每個快取索引佔用112位元組記憶體。這樣如果一個快取檔案大小在1K到20K之間則,大概記憶體花費為:50M~3M之間。其實通過檢視/var/spool/squid 目錄下的快取檔案大小你可以發現基本都是幾K的偏多。所以取20M還是比較合理的。

密碼登入
一般我們使用代理都是有密碼的,不然誰都可以用,伺服器還不得掛掉,怎麼在squid中是用密碼驗證呢?

先設定驗證相關的驗證引數:
# 密碼儲存路徑,設定通過ncsa_auth程式來讀取