我如何阻止 Squid 代理破坏 jar 文件?

我如何阻止 Squid 代理破坏 jar 文件?

我们公司内部的 NTLM 代理(我认为也是 Squid)由于某种原因随机返回 407 错误,甚至尝试找人来解决这个问题也是毫无意义的。

我在 Windows 电脑的 3128 端口上安装了 Cntlm 代理,以便能够使用不支持 NTLM 的软件。但是,我仍然会随机收到来自公司代理的 407 错误。

为了解决这个问题,我在本地主机上设置了一个 Squid Cache(版本 2.7.STABLE8)代理,转发到 Cntlm,想着可以在出现错误时重试。

我使用以下配置:

cache_dir ufs c:/ws/tmp/squidcache 500 16 256
http_port 3127
cache_peer 127.0.0.1 parent 3128 0 no-query default
acl all src 127.0.0.1
never_direct allow all
http_access allow all
retry_on_error on
maximum_single_addr_tries 10
maximum_object_size 100 MB

它基本上可以正常工作,但问题是 jar 文件最终会稍微损坏。我还没有弄清楚它们是如何损坏的,但它们通常比应有的长度长几个字节,甚至文件开头的字节也被损坏了。而且每次都不一样。

我发现http://javatechniques.com/blog/squid-corrupts-jar-files/这表明 mime 类型配置可能存在问题,并且 Squid 将 jar 文件视为 ASCII,但并未告诉您如何在 Squid 中修复它。

我尝试添加

\.jar$      application/octet-stream        anthony-compressed.gif  -   image   +download
# the default
.       application/octet-stream    anthony-unknown.gif -   image   +download

到 Squids mime.conf,并清除缓存,但这没有帮助。我真的不指望它能有帮助,因为我认为这些只是用于代理 FTP。

答案1

您尝试过使用 Squid 3.1 吗?我们已经使用 3.x 一段时间了,但尚未发现 jarfile 损坏。

相关内容