兩條魷魚鏈

兩條魷魚鏈

我有兩個魷魚伺服器,Squid A 和 Squid B。

Squid A 透明地為本機網路進行快取。

我想設定Squid A,以便在請求與正則表達式匹配的URL 時,它不會像平常一樣服務該請求,而是透過Squid B 進行“重定向”,以便Squid B 服務該請求,並將結果傳遞回Squid A將其傳遞給客戶端。

如何設定 Squid A 的設定檔來執行此操作?

答案1

在squid A配置中使用以下內容(通常是/etc/squid/squid.conf)

cache_peer <squid server B IP> parent <server B squid port> 3130 no-query no-digest no-netdb-exchange 

acl otherproxy url_regex "/etc/squid/divert.txt"
cache_peer_access <Squid server B IP> allow otherproxy
never_direct allow otherproxy
cache_peer_access <squid server B IP> deny all

並在其他 acl 頂部的魷魚 B 配置中執行以下操作

acl A_proxy src <Squid server A IP>/32
http_access allow A_proxy

之後,您可以將正規表示式新增至檔案/etc/squid/divert.txt並重新載入squid。將從伺服器 B 請求匹配的 URL,而不是直接請求。

我之所以提到在代理 B 上也添加 acl 的原因是為了避免代理 B 上的身份驗證、連接限制等設定會影響代理 A 的客戶端,因為此類問題很難調試。因此,最好允許從代理 A 到代理 B 的所有請求。

答案2

你想要在squid A 的squid.conf 中有類似下面的內容。使用它作為示例並進行調整以滿足您的特定要求。

# 將squid B定義為父級
cache_peer squid.b.example.com 父級 3128 3130 預設值

# 為您選擇的任何網域或 IP 位址範圍建立 ACL
# 不想從父級(squid B)取得。例如:
acl local_domains 域 your.local.domains.here
acl local_ip dst your.local.ip.addresses.here
始終直接允許本地域
Always_direct 允許 local_ip

# 並拒絕直接存取其他所有內容
never_direct 允許所有

答案3

Squid 特別具有支援代理伺服器分層組織的功能。這魷魚手冊頁有關於該主題的優秀文檔。

相關內容