Squid 代理不会缓存任何内容(tcp_tunnel)

Squid 代理不会缓存任何内容(tcp_tunnel)

当我查看访问日志时,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”。也就是说,它必须即时颁发证书以“假装”是目的地。

这里如果你真的想要这个(它涉及设置你自己的证书颁发机构,并且所有客户端都必须信任它)。

相关内容