Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1657437
  • 博文数量: 292
  • 博客积分: 10791
  • 博客等级: 上将
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-20 21:06
文章分类

全部博文(292)

文章存档

2011年(31)

2010年(261)

分类: 系统运维

2010-06-09 17:02:16


简单的说,Google的所有服务都是可以通过一 个相同的服务器访问到,Google根据请求的URL当中的域名来决定应该定向到哪个服务。一样可以访问到所有的服务,例如App Engine。但是因为DNS服务器的原因,appengine.google.com会被定向到Google美国的服务器,不会去连接。但是事实上,如果我们能够向发送一个HTTP请求,其中的URL是指向 appengine.google.com的,服务器一样能够帮我们中转请求,并把结果会传给我们。

要达到这个目的有两个方法,一个是修改 hosts,让appengine.google.com和*.appspot.com指向到的IP地址。这个有两个劣势,一个是其实有很多个地址做负载均衡,一旦加上了hosts条目,就失去了 负载均衡的好处;另一个劣势是hosts文件不支持*.appspot.com这种语法,所以只能把自己知道的appspot上的应用统统添加。

另一个方法则相对好一点,就是把:80设置成访问appengine.google.com的代理服务 器。这种方法很好用,但是需要写PAC文件(Proxy Auto-Config, 代理服务器自动配置文件)。所幸这个文件语法相当简单,因此可以直接写下面一段:

function FindProxyForURL(url, host) {
    if (shExpMatch(host,"*.appspot.com")) {
        return "PROXY :80";
    }
    if (shExpMatch(host,"appengine.google.com")) {
        return "PROXY :80";
    }
    return "DIRECT";
}

然后保存成一个proxy.pac文件。在浏览器的配置 当中,把“自动浏览器配置脚本”的配置项指到这里即可。
阅读(3027) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~