使用Heroku部署Node.js随机壁纸接口
起因
最近在研究Node.js,这个东西十分强大,打算自己琢磨琢磨后端,于是就试着随便写个接口玩玩。不过既然要学习,不部署到公网玩咋行
网上查了下资料,最后总结出三种方案:
服务器/VPS部署
鉴于我自己的服务器资源有限,而且还挂着网站和代理,再运行个Nodejs实在吃力,干脆放弃了这个想法。
云函数部署
云函数的话目前只能选国内的,按量计费环境怎么想心里都不太安稳,而且云函数的Nodejs还要用专门的一套接口,麻烦。
Heroku部署
Heroku是国外的一家应用平台,支持PHP,Ruby,Nodejs等多种环境,而且有免费套餐,不用担心扣费,于是就决定是它了。
使用Heroku Toolbelt
Heroku Toolbelt是Heroku的一个本地命令行工具,使用该工具可以将本地的项目部署到Heroku
下载并安装完成后,在 shell 中输入heroku login
,用创建heroku
账号的email
和密码
登陆
1 | $ heroku login |
配置Heroku程序
我们本地运行Node程序时一般都是自己指定的端口,而Heroku的web服务端口需要再运行进程的环境变量中获取。
修改Server监听逻辑:
1 | var port = process.env.PORT || 8081 |
另外,Heroku有一个叫Procfile
的启动配置:
Heroku 需要知道使用哪个命令启动程序。命令在一个名为
Procfile
(没有后缀)的特殊文件中指定。这个文件必须放在程序的顶级文件夹中。
在程序根目录创建Procfile
文件,在里面输入:
1 | web: node app.js |
这里的web是任务的名称,而web这个名称在启动web程序时名称是被指定的。
部署到Heroku
首先我们在本地要有一个git仓库:
1 | git init |
然后用Heroku的命令行工具创建app并部署:
1 | heroku create my-nodejs-app |
此时Heroku1便会将仓库上传到云端安装依赖并运行。
使用CloudFlare加速
不得不说Heroku的美国服务器在中国访问是真的慢…于是套了一个CloudFlare的CDN,勉强能用。
CloudFlare自选节点部署请参考文章:CloudFlare 自选节点教程,我用的Partener是笨牛。
Demo
下面的图片就是直接调用此随机壁纸接口,每次刷新本页面图片都会改变。
部署好的API地址:https://api.revincx.icu ,私人站点,请勿滥用。