当我查看访问日志时,18.04 服务器上的 Squid 不会缓存任何内容,大多数是 tcp_tunnel/200,缓存日志显示没有缓存任何内容。我该如何让它缓存网站?
鱿鱼配置:
http_port 3128
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
acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl url dstdomain "/etc/squid/url"
acl key url_regex -i "/etc/squid/key"
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny url
http_access deny key
cache_mem 1024 MB
maximum_object_size_in_memory 100 MB
cache_replacement_policy heap GDSF
cache_dir ufs /etc/squid/cache 5120 16 256
maximum_object_size 100 MB
cache_swap_low 85
cache_swap_high 90
access_log /var/log/squid/access.log
half_closed_clients off
hosts_file /etc/hosts
memory_pools off
client_db off
coredump_dir /var/spool/squid
答案1
如果 TCP_TUNNEL 用于 443,Squid 不会缓存任何内容。它只是在客户端<->服务器之间来回中继数据包,而不知道其中的内容,因为它们是 SSL 加密的。
要让 Squid 缓存 https 站点,必须让 Squid 能够成为 SSL 连接中的“MITM”。也就是说,它必须即时颁发证书以“假装”是目的地。
读这里如果你真的想要这个(它涉及设置你自己的证书颁发机构,并且所有客户端都必须信任它)。