squid Forwarding loop detected
squid 3.0-stable 16 linux透明代理,近期出現大量Forwarding loop detected for,squid響應越來越慢,導致squid進程終止。
就是純透明代理,也沒有配置代理陣列,也沒有什麼父子兄弟等的鄰居關係,resovle.conf只有isp的dns伺服器ip,/etc/hosts只有127.0.0.1 localhost
在google搜索,見有大牛說是DNS和hosts有設置有問題,造成了迴環。可我的dns和hosts都是和以前一樣的,怎麼最近才出現。
WARNING: Forwarding loop detected for:
Jeff Pang大牛的譯作中的解釋:
Forwarding loop detected for:
回想一下,當單個請求遍歷Squid 2次時,就發生了轉發循環。請求的Via頭部包含了遍歷過的所有代理的列表。假如Squid在Via列表裡檢測到了自己的名字,它發布轉發循環警告,並將請求直接發送到原始伺服器。見10.2節關於轉發循環的解釋。
有路過的高人請指教!
《解決方案》
轉發循環典型的發生在2個cache互相把對方當作父cache的情況。假如你遇到這樣的問題,請確認使用cache_peer_access指令來阻止這類循環。例如,假如鄰居cache的IP地址是192.168.1.1,下面的行讓squid不會產生轉發循環:
acl FromNeighbor src 192.168.1.1
cache_peer_access the.neighbor.name deny FromNeighbor
轉發循環在HTTP攔截里也能發生,特別是當攔截設備位於squid和原始伺服器之間的路徑上時。
Squid通過檢查Via頭部里的主機名,來檢測轉發循環。假如2個協作cache有相同的主機名,實際上就會得到假轉發循環。在該情形下,unique_hostname指令很有用。注意,假如Via頭部被過濾掉了(例如使用headers_access指令),squid就不能檢測到轉發循環。
[ 本帖最後由 ljily000 於 2009-7-30 19:36 編輯 ]