I have a cache server running squid2.7.9. I wrote the follow configurations: acl Safe_ports port 80 acl Domain dstdomain .china.com acl Domain dstdomain .haiyang2012.com http_access allow Safe_ports Domain http_access deny all cache_peer 10.168.168.13 parent 80 0 no-query no-netdb-exchange originserver round-robin cache_peer 10.168.170.14 parent 80 0 no-query no-netdb-exchange originserver round-robin cache_peer_access 10.168.168.13 allow Domain cache_peer_access 10.168.170.14 allow Domain always_direct allow !Domain When I request a url like "http://military.china.com/zh_cn/etc/endpage /showPic.html",I can see "HTTP/1.0 OK" and so on. But when I request a url like "http://military.china.com/zh_cn/etc/endpage/showPic.html?http://image.tuku.china.com/tuku.military.china.com/military//pic/2010-09-20/b12a1145-dd40-4fcb-8ce0-1372ac934f66.jpg"(this url just redirect request into "http://image.tuku.china.com/tuku.military.china.com/military//pic/2010-09-20/b12a1145-dd40-4fcb-8ce0-1372ac934f66.jpg"),the squid response a "504 time out"! I strace the squid process and see that when squid handle the request having a "?", he donot back to the ip defined in cache_peer but the ip resolved by dnssever which is himself! I change the conf as "never_direct allow all",problem solved. But I still think that the conf using "always_direct" is right, why its not take effect??