自从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 EngineGoogle 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.yamlfeed.phpapplication: 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
这样基本的功能就实现了,接着就是绑定域名,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。<?php header("Content-Type: text/xml; charset=utf-8") ; $url = "http://xuhehuan.com/feed"; //替换为你的地址 $content = file_get_contents($url); echo $content; ?>
查看原文:http://xuhehuan.com/2162.html
博客订阅Feed地址托管到GAE
最新推荐文章于 2020-07-30 15:41:49 发布