我们公司内部的 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 损坏。