自从 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 的这段时间内,它的变化还是比较大的,原来一直习惯于访问 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 = "https://xuhehuan.com/feed"; // 替换为你的地址 $content = file_get_contents($url); echo $content; ?>
这样基本的功能就实现了,接着就是绑定域名,GAE 绑定域名前需要申请 Google Apps,然后在 Console 中操作,步骤参看下图,详细过程和在 Engine 中差不多,不再赘述。
目前已经实现了 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