如何快速部署Node.js項目

駐云科技2017-05-11 17:46:43瀏覽2999評論3發(fā)表于:阿里云服務(wù)>>最佳實踐

云棲社區(qū)linux分布式javascriptHTTPSECS云服務(wù)器httpjscentosnodealiyungit

摘要:Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境撼玄,用來方便地搭建快速的易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用哺眯。Node.js 使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,使其輕量又高效,非常適合運(yùn)行在分布式設(shè)備的數(shù)據(jù)密集型的實時應(yīng)用。

Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境,用來方便地搭建快速的易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用了一個事件驅(qū)動叹誉、非阻塞式 I/O 的模型,使其輕量又高效闷旧,非常適合運(yùn)行在分布式設(shè)備的數(shù)據(jù)密集型的實時應(yīng)用长豁。Node.js 的包管理器 npm,是全球最大的開源庫生態(tài)系統(tǒng)忙灼。

典型的應(yīng)用場景包括:

實時應(yīng)用:如在線聊天蕉斜,實時通知推送等等(如socket.io)

分布式應(yīng)用:通過高效的并行I/O使用已有的數(shù)據(jù)

工具類應(yīng)用:海量的工具,小到前端壓縮部署(如grunt)缀棍,大到桌面圖形界面應(yīng)用程序

游戲類應(yīng)用:游戲領(lǐng)域?qū)崟r和并發(fā)有很高的要求(如網(wǎng)易的pomelo框架)

利用穩(wěn)定接口提升Web渲染能力

前后端編程語言環(huán)境統(tǒng)一:前端開發(fā)人員可以非痴耍快速地切入到服務(wù)器端的開發(fā)(如著名的純Javascript全棧式MEAN架構(gòu))

接下來我們將要介紹如何在阿里云ECS中部署Node.js項目。

部署流程

部署之前爬范,請做如下準(zhǔn)備工作:

購買ECS實例

實例運(yùn)行的鏡像是CentOS7.2

實例可以連接公網(wǎng)

本地已經(jīng)安裝用于連接 Linux 實例的工具父腕,如Xshell

使用云服務(wù)器 ECS 安裝Nodejs并部署項目的操作步驟如下:

購買 ECS 實例。

部署Node.js環(huán)境-二進(jìn)制文件安裝青瀑。

部署Node.js環(huán)境-使用NVM安裝多版本璧亮。

部署測試項目。

注:2和3步驟斥难,根據(jù)實際應(yīng)用場景枝嘶,任選其一。

操作步驟

步驟 1:創(chuàng)建ECS實例

選擇操作系統(tǒng)為公共鏡像CentOS7.2哑诊。使用root用戶登錄Linux實例群扶。

步驟2:部署Node.js環(huán)境--二進(jìn)制文件安裝

該部署過程使用的安裝包是已編譯好的二進(jìn)制文件,解壓之后,在bin文件夾中就已存在node和npm竞阐,無需手工編譯缴饭。

安裝步驟:

1、 wget命令下載Node.js安裝包骆莹。

該安裝包是編譯好的文件颗搂,解壓之后,在bin文件夾中就已存在node和npm幕垦,無需重復(fù)編譯丢氢。

wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz

2、 解壓文件先改。

tar xvfnode-v6.9.5-linux-x64.tar.xz

3疚察、創(chuàng)建軟鏈接,使node和npm命令全局有效盏道。

通過創(chuàng)建軟鏈接的方法稍浆,使得在任意目錄下都可以直接使用node和npm命令:

ln -s /root/node-v6.9.5-linux-x64/bin/node/usr/local/bin/nodeln-s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm

4载碌,查看node猜嘱、npm版本。

node-vnpm -v

5嫁艇、至此朗伶,Node.js環(huán)境已安裝完畢。

軟件默認(rèn)安裝在/root/node-v6.9.5-linux-x64/目錄下步咪。如果需要將該軟件安裝到其他目錄(如:/opt/node/)下论皆,請進(jìn)行如下操作:

mkdir -p /opt/node/

mv/root/node-v6.9.5-linux-x64/* /opt/node/

rm-f /usr/local/bin/noderm-f /usr/local/bin/npmln -s /opt/node/bin/node/usr/local/bin/nodeln-s /opt/node/bin/npm /usr/local/bin/npm

步驟3:部署Node.js環(huán)境-使用NVM安裝多版本

NVM(Node version manager)是Node.js的版本管理軟件,使用戶可以輕松在Node.js各個版本間進(jìn)行切換猾漫。適用于長期做 node 開發(fā)的人員或有快速更新node版本点晴、快速切換node版本這一需求的用戶。

安裝步驟:

1悯周、直接使用git將源碼克隆到本地的~/.nvm目錄下粒督,并檢查最新版本。

yum install gitgit clone https://github.com/cnpm/nvm.git ~/.nvm &&cd~/.nvm && git checkout `git describe --abbrev=0--tags`

2禽翼、激活NVM屠橄。

echo". ~/.nvm/nvm.sh">> /etc/profilesource/etc/profile

3、列出Node.js的所有版本闰挡。

nvmlist-remote

4锐墙、安裝多個Node.js版本。

nvminstallv6.9.5nvminstallv7.4.0

5长酗、查看已安裝Node.js版本溪北,當(dāng)前使用的版本為v6.9.5。

[root@iZuf62didsxigy36d6kjtrZ .nvm]#nvmls->v6.9.5v7.4.0

6、切換Node.js版本至v7.4.0刻盐。

[root@iZuf62didsxigy36d6kjtrZ .nvm]# nvm use v7.4.0Now usingnodev7.4.0

NVM的更多操作請參考幫助文檔:

nvmhelp

步驟4:部署測試項目

1掏膏、新建項目文件example.js。

cd~

touchexample.js

2敦锌、使用vim編輯器打開項目文件example.js馒疹。

yum installvimvimexample.js

輸入“i”,進(jìn)入編輯模式,將以下項目文件內(nèi)容粘貼到文件中乙墙。使用“Esc”按鈕颖变,退出編輯模式,輸入“:wq”听想,回車腥刹,保存文件內(nèi)容并退出。

項目文件內(nèi)容:

consthttp =require('http');consthostname ='ECS公網(wǎng)IP地址';constport =3000;constserver = http.createServer((req, res) =>{res.statusCode =200;res.setHeader('Content-Type','text/plain');res.end('Hello World\n');});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);});

注:項目文件內(nèi)容中的'ECS公網(wǎng)IP地址'處需填寫實際的ECS公網(wǎng)IP汉买;項目文件內(nèi)容中的3000為端口號衔峰,可以自行定義。

3蛙粘、運(yùn)行項目垫卤。

node~/example.js

注:可以使用命令“node ~/example.js &”將項目置于后臺運(yùn)行。

4出牧、使用命令查看項目端口是否存在穴肘。

netstat -tpln

5、在瀏覽器中輸入http://IP:端口號 訪問項目舔痕。

到這里我們的Node.js項目就部署完成了评抚。

駐云科技成立于2013年,是中國少數(shù)幾家業(yè)務(wù)完全基于云計算技術(shù)的服務(wù)型公司伯复。駐云基于公共云計算技術(shù)慨代,幫助廣大企業(yè)選擇真正適合其業(yè)務(wù)需要的云計算及大數(shù)據(jù)產(chǎn)品。

駐云科技作為阿里云的生態(tài)服務(wù)合作伙伴啸如,將會把服務(wù)中的案例和最佳實踐沉淀在這里侍匙,歡迎大家踴躍交流 ~

相關(guān)鏈接

用戶可通過云中沙箱平臺體驗上述文檔中的操作,點擊此處组底。

更多開源軟件盡在云市場丈积,點擊此處.

本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載债鸡,如需轉(zhuǎn)載請發(fā)送郵件至yqeditor@list.alibaba-inc.com江滨;如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,歡迎發(fā)送郵件至:yqgroup@service.aliyun.com 進(jìn)行舉報厌均,并提供相關(guān)證據(jù)唬滑,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。

原文鏈接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晶密,一起剝皮案震驚了整個濱河市擒悬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稻艰,老刑警劉巖懂牧,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尊勿,居然都是意外死亡僧凤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門元扔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躯保,“玉大人,你說我怎么就攤上這事澎语⊥臼拢” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵擅羞,是天一觀的道長尸变。 經(jīng)常有香客問我,道長祟滴,這世上最難降的妖魔是什么振惰? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任歌溉,我火速辦了婚禮垄懂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痛垛。我一直安慰自己草慧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布匙头。 她就那樣靜靜地躺著漫谷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹂析。 梳的紋絲不亂的頭發(fā)上舔示,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音电抚,去河邊找鬼惕稻。 笑死,一個胖子當(dāng)著我的面吹牛蝙叛,可吹牛的內(nèi)容都是我干的俺祠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜘渣!你這毒婦竟也來了淌铐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蔫缸,失蹤者是張志新(化名)和其女友劉穎腿准,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拾碌,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡释涛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倦沧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唇撬。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖展融,靈堂內(nèi)的尸體忽然破棺而出窖认,到底是詐尸還是另有隱情,我是刑警寧澤告希,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布扑浸,位于F島的核電站,受9級特大地震影響燕偶,放射性物質(zhì)發(fā)生泄漏喝噪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一指么、第九天 我趴在偏房一處隱蔽的房頂上張望酝惧。 院中可真熱鬧,春花似錦伯诬、人聲如沸晚唇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哩陕。三九已至,卻和暖如春赫舒,著一層夾襖步出監(jiān)牢的瞬間悍及,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工接癌, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留心赶,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓扔涧,卻偏偏與公主長得像园担,于是被迫代替她去往敵國和親届谈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容