我使用鱿鱼与adzap,它可能是鱿鱼/ adzap不caching一个particluar域如。 cnn.com
这是我的squid.conf文件
# # Recommended minimum configuration: # acl manager proto cache_object acl localhost src 127.0.0.1/32 #acl localhost src ::1/128 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 #acl to_localhost dst ::1/128 # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed acl localnet src 192.168.1.0/24 acl localnet src 192.168.2.0/24 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # # Recommended minimum Access Permission configuration: # # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only # one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed http_access allow localnet http_access allow localhost # And finally deny all other access to this proxy http_access deny all # Squid normally listens to port 3128 http_port xxx.xxx.xxx.yyy:3128 transparent visible_hostname proxyserver.local # We recommend you to use at least the following line. hierarchy_stoplist cgi-bin ? # Uncomment and adjust the following to add a disk cache directory. cache_dir ufs /var/spool/squid 1024 16 256 # Leave coredumps in the first cache dir coredump_dir /var/spool/squid # Add any of your own refresh_pattern entries above these. refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 access_log /var/log/squid/squid.log squid access_log syslog squid redirect_program /usr/local/adzap/scripts/wrapzap
固定使用
acl allow_domains dstdomain www.cnn.com always_direct allow allow_domains
我很惊讶, always_direct正在工作。 正如其他人所说,只影响caching层次结构,你似乎没有使用一个。
如果你想控制caching,使用正确的configuration选项是cache (或no_cache ,取决于你正在运行的是什么版本的squid)。
例如
Acl dontcache dstdomain .cnn.com Cache deny dontcache Cache allow all
Squid指令always_direct指出,对于指定的ACL,请始终直接连接到它们,而不要连接到上游caching。 许多过滤代理设置为上游caching,所以filter不必担心caching(它委托给Squid)。
你的例子
acl allow_domains dstdomain www.cnn.com always_direct allow allow_domains
定义了一个名为allow_domains的访问控制列表,并allow_domains添加了www.cnn.com。 (您可能还想将其改为.cnn.com以允许其他CNN网站,但不仅仅是具有该后缀的任何内容,例如“malwarecnn.com”。
然后,always_direct允许ACL_NAME告诉Squid忽略该域的转发器。
(如果你回答自己的问题,请回答,否则有人会为未来的读者添加更多的细节:)
always_direct用于指定始终应该由Squid转发到原始服务器的请求, 而不使用任何对等体 。 这与caching无关。 而不是always_direct,你必须使用类似下面的东西
acl bypass_caching dstdomain cnn.com cache deny bypass_caching
TAG:cache – 一个ACL元素列表,如果匹配,会导致请求不能被caching满足,并且回复不被caching。 换句话说,使用这个强制某些对象永远不会被caching 。 您必须使用单词“DENY”来指示不应caching的ACL名称。