Squid 和延迟池:rep_mime_type、https

Squid 和延迟池:rep_mime_type、https

我正在努力解决 squid 延迟池问题。我发现的文档非常差,互联网上的信息相互矛盾,甚至可能超出范围。

第一个问题:

  • acl acl名称 url_regex -i \.exe

它会匹配 HTTPS 请求吗?根据我的经验和一些帖子,它不会,所以找不到任何简单的方法来限制下载使用的带宽。EXE文件文件来自HTTPS连接。我遗漏了什么吗?

第二个问题:

  • acl streaming_exe rep_mime_type 应用程序/八位字节流

rep_mime_type与...一起使用delay_access poolNumber 允许? 再次,根据我的经验和互联网上的一些非常古老的帖子,它不起作用,但文档缺少这个重要的限制。

谢谢 Filippo

答案1

在 squid 邮件列表中收到的答复证实了我所有的疑虑:

“HTTPS” 不是一个单一的事物或消息类型。它是一个描述整个多层协议堆栈的术语。

要对 URL 或任何其他 HTTP 消息详细信息(可称为“HTTPS 请求”)执行任何操作,都需要解密 TLS 层以找到其中保护的 HTTP 消息。

从该描述来看,我感觉您正在处理方法为 CONNECT 的纯文本 HTTP 消息。其中几乎没有任何信息。除了客户端想要与之通信的服务器的域名以及客户端 UA 设备之外,使用任何更正常的请求/回复消息详细信息来决定池都是不明智的。

不过,Squid 应该仍然能够延迟池化这些 CONNECT 隧道。但这只是作为一个整体,并且仍然存在原因不明的未解决的错误。您需要一个相当新的 Squid 版本才能使其工作得接近“正常”。

对于带宽控制,最好使用操作系统提供的 QoS / TOS 功能。Squid 可以使用 qos_flows、tcp_outgoing_tos 或 tcp_outgoing_mark 为这些系统输出每个请求的值。

关于第二个问题:

在当前的 Squid 中,只有 4.0.2 或更高版本可以做到这一点。基于 HTTP 响应详细信息的(重新)分配池是最近才从 Squid-2.6 移植过来的。

相关内容