简单的说,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文件。在浏览器的配置 当中,把“自动浏览器配置脚本”的配置项指到这里即可。
阅读(3018) | 评论(0) | 转发(0) |