教你在heroku云平臺(tái)上部署Node.js應(yīng)用
雖然AWS現(xiàn)在也推出了自己的PaaS平臺(tái),叫Elastic Beanstalk,但heroku的優(yōu)勢(shì)在于它上面有很多第三方的add-on,比如MongoDB,mysql, redis, memcached, 還有各種消息隊(duì)列、sms和郵件、后臺(tái)批處理、搜索、自動(dòng)化監(jiān)控等插件,從生態(tài)環(huán)境的角度來說比AWS還是強(qiáng)很多。
這也就是說,heroku上有現(xiàn)成的Node.js PaaS運(yùn)行環(huán)境,還有很多add-on,每天會(huì)自動(dòng)把數(shù)據(jù)備份到AWS S3上,你只需要用git命令把代碼push上去就行了,其他的什么都不用管。對(duì)于咱們程序猿來說,世界上還有比這更爽的事情嗎?
所以,為了造福網(wǎng)友,俺今天就把部署的幾個(gè)小步驟總結(jié)一下。
假定你已經(jīng)有了一個(gè)叫sample的node.js應(yīng)用,代碼放在/Home/Apps/sample9527下,目錄下有你的服務(wù)器端核心js文件server.js,現(xiàn)在你已經(jīng)cd到了這個(gè)目錄下。
為了讓heroku識(shí)別你的應(yīng)用,需要在這個(gè)目錄下加入一個(gè)文件Procfile,內(nèi)容是一行代碼:
web: node server.js
(這里的 web: node 是告訴heroku你要部署的是一個(gè)node.js web應(yīng)用,后面的server.js 就是你的服務(wù)器端核心程序代碼文件名)
好,現(xiàn)在部署工作可以開始了。
首先,你需要到 www.heroku.com 上注冊(cè)一個(gè)用戶,用戶名是你的郵箱地址。然后安裝 Heroku Toolbelt ,這是一個(gè)命令行工具,可以讓你直接在shell里用命令發(fā)布代碼,查看系統(tǒng)狀態(tài),修改服務(wù)器配置,等等。
然后在shell里用heroku login命令登錄,輸入你的用戶名和密碼即可。
$ heroku login
第一步可以用foreman start命令檢查一下你的代碼是否能順利在heroku上運(yùn)行,如果看到輸出中沒有報(bào)錯(cuò),那就說明基本正常。
$ foreman start
然后就是用git同步代碼:
$ git init $ git add . $ git commit -m "init"
創(chuàng)建heroku應(yīng)用:
$ heroku create sample9527
如果sample9527這個(gè)app名在heroku上沒有人用,那么你會(huì)創(chuàng)建成功,應(yīng)用的鏈接就是http://sample9527.herokuapp.com/,不然就改個(gè)名字接著試,或者直接用heroku create讓它幫你起一個(gè)新名字。
如果需要安裝一些數(shù)據(jù)庫之類的插件,可以看看它有什么add-on可用,然后在命令行加入。比如加入一個(gè)MongoLab提供的MongoDB數(shù)據(jù)庫:
$ heroku addons:add mongolab
(大部分add-on需要你在用戶信息中填入信用卡,但是如果選用免費(fèi)版本則不會(huì)被扣費(fèi),放心吧)
然后就可以同步程序代碼了:
$ git push heroku master
同步之后,heroku會(huì)自動(dòng)根據(jù)npm配置下載和安裝必要的dependencies,然后啟動(dòng)你的應(yīng)用。
現(xiàn)在可以到應(yīng)用鏈接看一下是否正常,如果有錯(cuò)誤,可以在命令行查看日志:
$ heroku logs
根據(jù)日志中的錯(cuò)誤信息修改代碼后,可以再次提交代碼:
$ git commit -a -m "update some code" $ git push heroku master
或者在需要時(shí)直接用restart命令重啟服務(wù):
$ heroku restart
heroku的初級(jí)玩法基本上就是這些了,夠簡單吧?自己去試試唄。
- 利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程
- 在Docker上開始部署Python應(yīng)用的教程
- 在Docker上部署Python的Flask框架的教程
- 在Docker中自動(dòng)化部署Ruby on Rails的教程
- 使用Docker來加速構(gòu)建Android應(yīng)用的基本部署思路解析
- 基于NodeJS的前后端分離的思考與實(shí)踐(六)Nginx + Node.js + Java 的軟件棧部署實(shí)踐
- 解析Node.js基于模塊和包的代碼部署方式
- 一行命令搞定node.js 版本升級(jí)
- 跟我學(xué)Nodejs(一)--- Node.js簡介及安裝開發(fā)環(huán)境
- 在Docker快速部署Node.js應(yīng)用的詳細(xì)步驟
相關(guān)文章
詳解基于Koa2開發(fā)微信二維碼掃碼支付相關(guān)流程
這篇文章主要介紹了詳解基于Koa2開發(fā)微信二維碼掃碼支付相關(guān)流程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Node.js實(shí)現(xiàn)壓縮與解壓數(shù)據(jù)
這篇文章介紹了Node.js實(shí)現(xiàn)壓縮與解壓數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07npm?install?XXX安裝路徑文件夾權(quán)限問題的解決過程
這篇文章主要給大家介紹了關(guān)于npm?install?XXX安裝路徑文件夾權(quán)限問題(npm?ERR!?The?operation?was?rejected?by?your?operating?system.errno?-4080)的解決過程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Windows中安裝nvm進(jìn)行Node版本控制與詳細(xì)使用教程
nvm和npm都是node.js版本管理工具,但是為了解決node各種不同之間版本存在不兼容的問題,因此可以通過nvm安裝和切換不同版本的node,感興趣的可以了解一下2023-09-09node.js中的fs.readlinkSync方法使用說明
這篇文章主要介紹了node.js中的fs.readlinkSync方法使用說明,本文介紹了fs.readlinkSync方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12node.js WEB開發(fā)中圖片驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了node.js WEB開發(fā)中圖片驗(yàn)證碼的實(shí)現(xiàn)方法,使用ccap模塊實(shí)現(xiàn),需要的朋友可以參考下2014-06-06