最新消息:蔓草札记的微信公众号开通了,赶紧在微信通讯录公众号中搜索“蔓草札记”关注下吧 :)

博客订阅Feed地址托管到GAE

博客经验 xhhjin 6802浏览 0评论

自从 FeedSky 变得不稳定后,就动手将不太友好的 WordPress 原生 Feed 内容美化了下,自己管理,并且为了维护一致性,对外发布的 Feed 订阅地址没用 WordPress 的原生地址,而改用二级域名:http://feed.xuhehuan.com,以便维护稳定的用户订阅。这样就得有个地方来托管这个二级域名,速度和稳定性是最重要的,本来托管博客的主机是最好的选择,但绑定这个二级域名后和 WordPress 原生地址会有冲突,所以只能找其它地方。

正好之后不久,大概到 14 年 7 月份的时候,申请到了SAE 的高级开发者,每月都有不少云豆送,不用反倒成了一种浪费,所以就找了一些方法,将这个订阅地址托管在了 SAE 上,直至今日,表现都不错。但是,15 年 4 月末,SAE 的政策却变了,号称的全民免费的政策使得开发者利益大大受损,由于我的域名没有备案,所以连这个仅仅托管 Feed 的地方,每天都要消耗 10 多个云豆,长此以往,势必要牺牲 Money 了。所以迫切的需要找到一些替代方案,赶紧将托管地址转出来。这两周看了不少免费空间,但尝试下来,没有一个合适的。

最后的想到的地方才是 GAE,在 13 年 5 月份 GAE 刚宣布支持 PHP,还需要申请才能使用的时候,就曾经按照官方教程尝试过安装 WordPress,但后来随着墙的日益巩固和 SAE 的免费云豆,我几乎都快忘了这个地方,仅仅是空闲时看下之前部署过的一些程序运行还正常不正常,谁成想,现在我又回到了这个地方。

GAE PHP 环境

两天用下来,感觉在不大使用 GAE 的这段时间内,它的变化还是比较大的,原来一直习惯于访问 Google App Engine

Google App Engine:https://appengine.google.com/

现在都变成 Google Developers Console 了

Google Developers Console:https://console.developers.google.com/

但之前用的代码部署方法还是可行的,所以转换起来也还好,并且在我使用过一段 Console 后,感觉其功能比 Engine 强大多了。当然,这都不是关键,关键是我要找到在 GAE 上部署 Feed 地址的方法,而这是没有现成方案的,只能从官方 PHP 文档看起了,先配置好 app.yaml,再写个 feed.php,不算太难,第一个版本就出现了。

app.yaml

application: mancaofeed
version: feed01
runtime: php55
api_version: 1
threadsafe: true

handlers:
- url: /static
  static_dir: static

- url: /favicon.ico
  static_files: static/favicon.ico
  upload: static/favicon.ico
  mime_type: image/x-icon
 
- url: /transform.xsl
  static_files: static/transform.xsl
  upload: static/transform.xsl

- url: /.*
  script: feed.php

feed.php

<?php
header("Content-Type: text/xml; charset=utf-8") ;
$url = "http://xuhehuan.com/feed";	// 替换为你的地址
$content = file_get_contents($url);
echo $content;
?>

这样基本的功能就实现了,接着就是绑定域名,GAE 绑定域名前需要申请 Google Apps,然后在 Console 中操作,步骤参看下图,详细过程和在 Engine 中差不多,不再赘述。

GAE 绑定域名

目前已经实现了 Feed 地址的托管功能,不想折腾的话,就此打住;下面几点是我在后面看文档时一点点完善的,可以认为是改进版本。

1、每次都用 file_get_contents 从原始 feed 地址读取内容,会导致用户访问时速度比较慢,可以结合 Scheduled Tasks With Cron for PHP 的定时功能将 feed 地址预读取到 Memcache 中,在用户访问页面时,直接从 Memcache 中读取,提升速度;

2、测试中发现 Frontend Instance Hours 消耗非常快,一不小心就要超额了,所以参考Instance scaling and class 的文档,并根据查找到的 Engine 中降低 Frontend Instance Hours 消耗的经验,在 app.yaml 中配置了下 Automatic Scaling,设置 instance_class 为 F1,max_idle_instances 为 1,min_pending_latency 为 15s,防止超出配额;

3、增加腾讯公益 404 页面,将绑定二级域名其它没用到的地址均解析到这个公益 404 页面上来,优化体验。

另外,这次还修改了下之前美化的博客 Feed 订阅界面,删掉了已经废掉的鲜果,增加了表现不错的 InoReader 和 AOL Reader 的一键订阅。

好了,就这么多了,有兴趣的话就访问下我的订阅地址看看吧:http://feed.xuhehuan.com


欢迎转载,转载请注明出处:蔓草札记 » 博客订阅Feed地址托管到GAE

♥ 喜欢 0 赞赏
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址