反代IBN Cloudant数据库

本文是对少数派“使用 IBM Cloudant 多端同步 MoonFM 数据“,补充说明,在阅读本文前请详细阅读少数派的这篇文章,在创建IBN Cloudant数据库时,推荐创建在美国东海岸(华盛顿),原因是Heroku免费应用都部署在美国东海岸。

本文不是小白教程,请自行了解域名购买解析、Heroku账户注册认证(认证需外币信用卡)、Cloudflare使用、IBN Cloudant数据库创建、翻(😊)墙工具的搭建使用。

如有疑问,欢迎在本文留言,因作者能力有限,不能保证完全解决,望谅解。

本文是ibm-cloudant-proxy项目的使用说明。

准备

域名已经在NameSilo 购买,DNS解析使用的华为云解析,CDN使用的是CloudflareHeroku已经通过信用卡认证,IBN Cloudant已经按照少数派教程创建完毕。

  • DNS使用华为云解析是因为华为云解析可以免费使用分地域解析。
  • Heroku在验证信用卡后,可以运行更长时间(1000小时),可以免费使用一些插件。
  • 因为作者使用Cloudflare很久了,可以使用CNAME 接入,请读者注意,并自行解决遇到的问题。
  • 使用Cloudflare可以为Heroku应用免费添加HTTPS。

创建使用

  • IBM Cloudant数据库已经创作完毕,已经可以正常进行域名解析,获取IBM Cloudant访问链接。
    • 获取的访问链接格式为https://用户名:密码@访问主机/数据库名
    • 例子:https://user:[email protected]/ceshi
  • 打开GitHub上的ibm-cloudant-proxy项目,点击“ Deploy to Heroku ”,会跳转到Heroku创建应用界面,详细如下:
    • App name:要创建的应用名称这个随意
    • CLOUDANT_HOST :IBM Cloudant数据库主机名,示例“xx-bluemix.cloudantnosqldb.appdomain.cloud”。
      • 一定要按照说明填写,不要有“https://”开头和“/“结尾。
      • 每个人的IBM Cloudant数据库访问链接都不一样,请注意。
    • CLOUDANT_URL:IBM Cloudant访问链接,注意要带数据库名,示例“xx-bluemix.cloudantnosqldb.appdomain.cloud/ceshi”。不要带“https://”开头和“/“结尾。
    • MF_CLOUDANT :在IBM Cloudant上创建的数据库名称,例子“ceshi”。

这是图片例子

  • 点击“Deploy app”,如果顺利就可以正常部署了。
  • 测试是否能正常访问IBM Cloudant数据库。
    • Heroku应用访问链接为“https://应用名称.herokuapp.com/”,例子为“https://app-ceshis.herokuapp.com/”
    • 访问“https://app-ceshis.herokuapp.com/ceshi”,会弹出认证框,输入用户名和密码,会显示访问数据库的一些信息。

添加加速域名

因为Heroku远离中国大陆并且免费版无法使用自定义域名加密访问,因此使用Cloudflare加速。

  • Heroku添加自定义域名流程如下:Heroku应用(ceshi)->Settings->Domains->Add domain,域名例子为“moon.itansuo.info”。
  • 在Cloudflare DNS管理界面添加CNAME解析,记录名为“moon”,记录类型为“CNAME”,记录内容为“app-ceshis.herokuapp.com”。
    • 注意,记录内容为“app-ceshis.herokuapp.com”,不是Heroku上的DNS Target
  • 在华为云解析上添加对应的解析,等待域名解析成功,访问链接“https://moon.itansuo.info/ceshi”,测试数据库访问。

访问链接替换

数据库访问正常后,原访问链接“https://user:[email protected]xx-bluemix.cloudantnosqldb.appdomain.cloud/ceshi”,要替换为“https://user:[email protected]moon.itansuo.info/ceshi”

优化

  • 防止Heroku 30分钟无访问自动休眠
    • 打Heroku “Resources“标签,找到”Add-ons“,点击“Heroku Scheduler”进行设置。
    • 在打开的窗口上点击“Add Job”,输入内容“curl -i https://应用名称.herokuapp.com/”,例子“curl -i https://app-ceshis.herokuapp.com”
  • Papertrail是个免费的日志查看器,请自己使用。

高级

  • 速度再次提升,因为Cloudflare没有大陆节点,访问速度有些慢,如果对速度不满意还可以在此提速。
    • 使用香港或对大陆友好的VPS反代Heroku(用VPS反代就不需要Cloudflare)。
    • 使用Cloudflare自选IP,项目cf2dns
    • 使用 Amazon CloudFront反代Cloudflare(正在使用)。
      • DNS分地区解析,默认使用Cloudflare,大陆使用Amazon CloudFront
      • 不使用Amazon CloudFront,用户<=>Cloudflare<=>Heroku<=>IBM Cloudant。
      • 使用Amazon CloudFront,用户(大陆)<=>Amazon CloudFront<=>Cloudflare<=>Heroku<=>IBM Cloudant。使用教程:【AWS】CloudFront免费CDN详细配置入门
  • MF_CLOUDANT参数
    • MF_CLOUDANT可以是任意字符,不一定是数据库名称。

参考链接