如果您希望Squid成爲代理層次結構的一部分,或者您只是希望Squid不直接從Web服務器獲取內容,而是間接從另一個代理獲取內容,那麼請閱讀如何執行此操作。
您可以使用cache_peer指令添加Squid將要求內容的父代理。此外,您可以分別使用always_direct或never_direct控制是直接還是間接獲取內容。例如
cache_peer proxy.some-isp.com parent 8080 0 no-query no-digest never_direct允許所有
會告訴Squid總是從父代理獲取內容,該代理位於proxy.some-isp.com:8080。如果我們不使用第二個指令,可能會出現某些情況,Squid會直接詢問內容並忽略父代理; 這不是我們想要的。
有很多選項我不想在這裏討論,因爲它們有很好的文檔,但是沒有查詢和沒有消息說沒有ICP請求或緩存摘要應該發送到父代理(閱讀:應該關閉嘮叨)。
多個父代理
如果您想擁有多個父代理,可以添加更多cache_peer指令; 每個父母一個。現在你可以定義權重或循環來控制Squid與代理通信的方式:雖然權重告訴Squid更喜歡一個緩存而不是另一個緩存,但循環嘗試在定義的緩存之間均勻地分佈連接。
首先是兩個父代理的簡單示例:
cache_peer proxy.isp1.com parent 8080 0 no-query no-digest default cache_peer proxy.isp2.com parent 8080 0 no-query no-digest
如果您定義了多個父代理,則可能需要將其設置爲默認代理,這將用作最後的手段。
重量的一個例子:
cache_peer proxy.isp1.com parent 8080 0 no-query no-digest weight = 1 cache_peer proxy.isp2.com parent 8080 0 no-query no-digest weight = 2
在這個例子中,第二個ISP的代理可能比第一個ISP更受青睞。
這裏有一個循環的例子:
cache_peer proxy.isp1.com parent 8080 round-robin no-query cache_peer proxy.isp2.com parent 8080 round-robin no-query cache_peer proxy.isp3.com parent 8080 round-robin no-query
我們代理的所有連接都將在這三個緩存中進行循環。由於Squid平等對待所有父母,因此目前無法在此處定義權重,例如將50%的請求分別轉發給第一個代理,25%分別轉發給第二個和第三個代理。
結論
本文檔介紹瞭如何配置Squid以使用父代理或各種父代理。請查看最新文檔,以瞭解有關最新版Squid中可用的配置詳細信息和功能的更多信息。
文章轉自:https://www.christianschenk.org/blog/using-a-parent-proxy-with-squid/