重定向器
重定向器是squid的外部程式,它重寫來自客戶請求的URI。例如,儘管某個用戶請求這個頁面:http://www.example.com/page1.html,重定向器可以將請求改變到別的地方,例如:http://www.example.com/page2.html。squid自動抓取新的URI,就像是客戶端的原始請求一樣。假如回響可被快取,squid將它存儲在新的URI下。重定向功能允許你執行與squid相關的許多有趣事情。許多站點使用它們實現如下目的:訪問控制,移除廣告,本地鏡像,甚至用以繞開瀏覽器的bug。
關於使用重定向器進行訪問控制的好處之一是,你可以將用戶的請求重定向到某個頁面,這個頁面詳細解釋為何她的請求被拒絕。你也會發現重定向器比squid內建的訪問控制提供更多的彈性。然而不久你會看到,重定向器並不能訪問包含在客戶請求里的完整信息。
許多人使用重定向器來過濾web頁面廣告。大部分情形下,可以將對GIF或JPEG廣告圖片的請求,改變為請求位於本地伺服器上的,小而空的圖片。這樣,廣告就消失了,然而不會影響頁面布局。
所以在本質上,重定向器其實就是一個程式,它從標準輸入里讀取URI和其他信息,並將新的URI寫往標準輸出。Per和Python是寫重定向器的流行語言,儘管某些作者使用編譯性語言(例如C)以求更好的性能。
Squid的原始碼沒有包含任何重定向程式。作為管理員,你有責任編寫自己的重定向器,或者下載別人編寫的。該章開頭部分描述在squid和重定向進程之間的接口。我也提供幾個簡單的Perl重定向器示例。假如你志在使用別人的重定向器,而不是自己編寫,請跳到11.3章。