解决因googleapis被封导致的网页打开巨慢的问题

最近访问一些国外的网站如stackoverflow,npmjs等会特别慢,分析其请求不难发现是因为googleapis.com的问题,这些网站引用了google的资源,而在大天朝,google是被封的,所以一直访问比较慢。

可以通过一个Chrome插件解决,replace-google-cdn:

https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice

此插件的核心代码如下:

chrome.webRequest.onBeforeRequest.addListener(  
    function(request) {
        var url = request.url.replace('googleapis.com', 'useso.com');
        url = url.replace('themes.googleusercontent.com', 'google-themes.lug.ustc.edu.cn');
        return {redirectUrl: url};
    },
    {
        urls: [
            "*://ajax.googleapis.com/*",
            "*://fonts.googleapis.com/*",
            "*://themes.googleusercontent.com/*"
        ]
    },
    ["blocking"]
);

原理上就是将请求的url地址给修改为国内的cdn地址了。

此解决方案的问题就是只能在Chrome上生效,其他浏览器就不行了。

如果想要寻求全局的方案,可以采用代理的形式,原理:自己有台vpn,在远程服务上搭建个http server用过代理,配置本地/etc/hosts将googleapis.com的请求代理到vpn的代理上就行了。缺点就是针对https需要设置证书,当然最大的缺点就是需要自己开发。