Squid代理技术咨询:关闭缓存的配置位置及HTTPS传输加密疑问
Squid代理技术咨询:关闭缓存的配置位置及HTTPS传输加密疑问
嗨xstack,针对你遇到的Squid配置问题,我来给你一步步捋清楚:
一、彻底关闭Squid缓存的配置方法
作为开发人员,缓存确实是调试阶段的“拦路虎”,我完全懂你的痛点!其实不用纠结找特定的“cache access list”区块,直接在配置文件里加规则就行,具体操作如下:
找到配置文件并编辑
打开Debian 10上的Squid主配置文件,用你顺手的编辑器就行,比如:nano /etc/squid/squid.conf彻底禁用缓存存储(可选但推荐)
先找到类似下面这行配置(默认是开启缓存存储的):cache_dir ufs /var/spool/squid 100 16 256在这行前面加个
#注释掉,这样Squid连本地缓存目录都不会使用了,从根源上避免缓存产生。添加全局禁用缓存的规则
找一个逻辑清晰的位置添加规则,我建议放在你之前配置的http_access allow 你的IP地址这行之后,这样规则优先级也合理,直接加一行:cache deny all如果你不需要针对特定路径单独设置缓存规则(比如你提到的
acl DIRECTORIES那种),这一行就足够让Squid完全不缓存任何内容了,不用额外加其他ACL。重启Squid生效
保存配置文件后,重启Squid服务让改动生效:systemctl restart squid至于你看到的那种带
acl DIRECTORIES的写法,是给需要针对特定URL路径禁用缓存的场景用的,你要的是全局禁用,直接用cache deny all就够啦。
二、HTTPS请求的加密情况说明
关于浏览器到代理之间的加密问题,分两种常见情况:
- 如果你是把浏览器设置成普通HTTP代理:浏览器会先给Squid发一个明文的
CONNECT请求,让Squid帮忙建立到亚马逊443端口的隧道,之后浏览器会直接和亚马逊的服务器协商SSL加密,这时候从浏览器到Squid之间的CONNECT请求是明文,但后续的HTTPS内容是完全加密的,Squid只是作为“管道”转发加密后的数据包,看不到你的明文请求内容。 - 如果你给Squid配置了HTTPS代理监听(也就是Squid本身提供SSL服务),那浏览器和Squid之间的整个连接都是SSL加密的,包括最初的请求,安全性会更高。
简单总结:不管哪种模式,你和目标HTTPS服务器(比如亚马逊)之间的内容都是加密传输的,不用担心明文泄露的问题~
备注:内容来源于stack exchange,提问作者xstack
相关产品推荐
相关产品推荐

