最近迷上ats了,认识很多传说中的大牛,和他们聊天,感觉很平易近人,也会开些玩笑;

      这是发生在今天晚上的,下午测试ats已经可以正向代理缓存flash游戏了;晚上回来在自己电脑host文件指定还域名和ats服务器IP,测试都没问题;在公司DNS创建域名A记录,再测试已经出问题了;(公司是ISP,有自己的DNS)问题就出现在DNS上,我ats服务器的DNS就配置的公司的DNS,然后我需要缓存图片,需要在公司DNS 创建图片域名A记录,这样我们用户就通过我们公司的DNS 解析到我的ats服务器了;

      故障:用户解析域名->请求公司DNS->DNS返回ats服务器IP给用户->用户访问ats服务器->ats服务器需要解析域名,然后出网取数据(当前用的公司DNS)->ats通过DNS解析域名的IP为它自己本身的IP(当前公司DNS已经创建图片域名的A记录,而IP正是ats服务器IP)->ats自己请求自己;到这里已经环路了;

      至于我在自己电脑测试没问题,因为当前公司的DNS没图片域名的A记录,它会出网递归查询,找到域名的真实IP;

 

上图域名vi0.ku6img.com 是已经在DNS创建A记录的,现在不能访问了;vi2.ku6img.com是修改的电脑本地host文件,所以可以正常访问;

    上面都是经群里朋友指点的,非常感谢他;当他说“正向代理最大的一个问题就在DNS解析。导致环路,一定切记”;我豁然开朗,前段时间做的squid,只所以没出这问题,是当初用的其他DNS,没用公司的;

     后面他讲了一些在代理服务器本地起named,域名查询会加快,DNS这块在ats中是核心,一切都要以DNS为核心,包括回源,hook等;推荐了轻量级的dnsmasq,把local 的ttl设置大一点,自己可以控制,不受授权DNS的ttl控制;还有资源回源,可以通过dnsmasq的地址指定回源IP,这样可以在我们全国内网里回源,不占用BGP出口;我见过我们公司第三方缓存服务器同样的squid+dnsmasq,而自己可以指定源站节点,想来也是这么做的。

     这次真庆幸遇上好人了,不然自己想破脑袋也找不到原因;在群里多说话还是有必要的,混熟了,好多朋友会支招,帮忙;