更好的在国内使用Blogger

谷歌的博客平台blogger,在国内不能访问已经很多年,在很久以前,通过静态部署,还能相对容易的在国内使用。后来谷歌却去掉了这个功能,导致大部分国内用户都放弃了这个服务,但依然有一部分人还在坚持使用,并探索出一些使用方法。技术上并没有什么难度,通过烂大街的反向代理就可以实现,我们可以自己搭建服务,比如nginx。也可以使用cloudflareCDN做这部分工作。

首先看一下我们需要解决的问题:

  1. 主页面被阻断的问题
  2. 页面依赖的资源的阻断问题

主页面被阻断,这个很容易解决,只需要通过cfblogger绑定自己的域名,这里需要注意,blogger在验证域名时要在cf关掉代理功能,即保证解析状态为“only dns”。验证通过后,点击对应dns记录后的小云彩,让它变为橘色,表明启用代理。

若要使用自己的服务器(意义不大),那么不用绑定域名到blogger,配置nginx如下:

server {
  resolver 8.8.8.8;
  listen 80;
  # 域名
  server_name example.com;
  access_log off;
  location / {
    #避免远方启用压缩导致无法替换纯文本
    proxy_set_header Accept-Encoding "";
    proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36";
    # 博客地址
    # 替换
    sub_filter http://blog1.blogspot.com /;
    #替换全文所有文本
    sub_filter_once off;
  }
}

做好这些后,您应该可以请求到自己的主页面了。但显然,页面中的一些资源引用(jscss等)依然会加载失败。

加载的资源可能有以下几种:

  1. 模板引用的jscss,图片等
  2. blogger系统统一插入的
  3. 博客文章内的图片
  4. 评论系统依赖

我们来逐个击破:

模板引用的资源,我们只能从模板下手,如果直接去看系统带的模板,可能会让人头大,所以最好的办法是自制模板,blogger的模板系统可能是世界上最简单的了,这里暂时不深入这些,有意的自行参考官方文档以及视频教程(123),留下我从typeche转换来的一个模板作为参考: https://gist.github.com/kran/a6f683bd8e34edbf04723c04fbaa5043 ,也就是目前使用的这一套。功能不多,简单易懂。

系统插入的一些代码可通过一种古老的hack方式解决掉(如果您用了上面提到的模板,那这一项是已经做过了的),这项技术现如今确实很少有人提及了,在2000年后的几年,免费空间提供商大行其道,但他们会给使用者的每个页面都插入广告代码,当年的孩子们为了使用这免费的午餐,发展了这个当年人手皆备的技巧。美好的日子 :),对您使用的模板做如下操作,原理很简单,即注释掉系统插入的代码罢了:

  1. <head>替换为:&lt;!--<head>--&gt;&lt;head&gt;
  2. </head>替换为:&lt;/head&gt;&lt;!--</head>--&gt;
  3. </body>替换为:&lt;!--</body>--&gt;&lt;/body&gt;

剩下的就只是博客内引用图片的问题,微博图床,七牛云都是你的选择。或者像我这样,尽量不使用图片吧。评论系统的话首先需要在模板内完全去掉,然后寻找一个自己喜欢的云评论系统就可以了。这样就有一个接近完整的博客供我们使用了。

最后,都9012年了,为什么还要写这样一个几乎确定不会有人关注的文章呢?
博客这一载体和论坛一样,已经在新兴的互联网载体中泯然众人,越来越少的人通过博客记录文字。即便要写,各种语言开发的静态博客系统也比blogger这种连代码插入都没有的系统好用的多。而且blogger说不定哪天就会被谷歌关掉了。

为什么呢?不是情怀,只是要锻炼下用文字描述清楚一件事的能力,很显然还差得远。