摘要:前言關(guān)于此教程作為一名業(yè)余開發(fā)者,因?yàn)楣径际亲龊偷?。。。建議采用的方式下載,可參考官方教程。但是服務(wù)的進(jìn)程管理,即便對(duì)于初學(xué)者來說,也是必不可少的一課。
前言 關(guān)于此教程
作為一名業(yè)余Nodejs開發(fā)者,因?yàn)楣径际亲?b>Java和C++的。。。我是在沒有任何人可請(qǐng)教的情況下,一個(gè)坑一個(gè)坑堅(jiān)(ku)實(shí)(bi)地踩過來的。作為對(duì)segmentdefault社區(qū)的回報(bào),把自己微不足道的經(jīng)驗(yàn)分享給其他初學(xué)者。
本教程的目的,就是幫助剛上手Nodejs的開發(fā)者童鞋盡快搭建好自己的第一個(gè)Nodejs服務(wù)器。即使是沒有編程經(jīng)驗(yàn)的新手,也希望能讀下來,也會(huì)對(duì)整個(gè)服務(wù)器搭建有個(gè)基本的概念。
Why DigitalOcean?官網(wǎng): https://www.digitalocean.com/
相信Nodejs的初學(xué)者都知道 CNode 網(wǎng)站,作為國(guó)內(nèi)最活躍的Nodejs社區(qū),她官方推薦的也是DigitalOcean的服務(wù)。優(yōu)點(diǎn)主要有2點(diǎn):
無需備案。
便宜:每月幾十塊錢的套餐,基本滿足大部分個(gè)人開發(fā)者的需求(我會(huì)告訴你我買的最便宜的咩...)。
缺點(diǎn)也很明顯,就是機(jī)房都在國(guó)外,訪問速度因?yàn)楸娝苤脑蚩赡軙?huì)較慢。網(wǎng)上有很多帖子討論哪個(gè)機(jī)房的速度快,反正我是腦子一抽筋就選了舊金山的機(jī)房,有的時(shí)候確實(shí)慢成狗,大部分時(shí)候還好。。。論窮人的耐受力。
價(jià)位和配置大家可以上官網(wǎng)自行查看,我簡(jiǎn)單截個(gè)圖:
一、創(chuàng)建Digital Ocean賬戶,準(zhǔn)備CentOS系統(tǒng)整體步驟如下:
1. 創(chuàng)建Droplet上官網(wǎng),注冊(cè)賬戶,選擇套餐(關(guān)于套餐選擇,可以自行Google下,各種大神分析各種套餐使用方式。當(dāng)然除非你跟我一樣毫不猶豫地選了5刀的乞丐版,一小時(shí)0.7美分~~~還是資本主義好?。?,最后創(chuàng)建droplet。
2. 系統(tǒng)初始配置創(chuàng)建好droplet之后,就是要對(duì)CentOS(當(dāng)然你也可以選別的,新手建議選CentOS)進(jìn)行初始配置。可參考DigitalOcean的官方文檔 initial-server-setup-with-centos-7。
為了照顧英語不好的同學(xué),我把幾個(gè)重要步驟翻譯如下:
Step 1. 以root權(quán)限登陸打開命令行(shell),輸入ssh root@SERVER_IP_ADDRESS,其中 SERVER_IP_ADDRESS就是分配給你的droplet的公網(wǎng)ip地址(恭嘿你有了屬于自己的ip~~~)。回車之后,會(huì)提示你輸入密碼,這個(gè)密碼應(yīng)該是郵件發(fā)你了。登陸成功之后會(huì)立即提示你修改密碼。
Step 2. 創(chuàng)建新的用戶登陸后你相當(dāng)于是在用命令行操縱服務(wù)器,所以可以直接在命令行中輸入adduser yourname,就會(huì)創(chuàng)建一個(gè)名字叫yourname的用戶,在用passwd demo設(shè)置密碼。
Step 3. 給予新創(chuàng)建的用戶sudo權(quán)限沒有sudo超級(jí)管理員權(quán)限,會(huì)各種不方便,所以可以在root賬戶下用gpasswd -a yourname wheel命令,賦予sudo權(quán)限。
系統(tǒng)初始配置基本完成了,到目前為止你已經(jīng)可以在里面玩耍了,但是沒有ssh key驗(yàn)證的話,安全性會(huì)打折扣。如何進(jìn)行ssh設(shè)置就請(qǐng)大家參考上面鏈接里文章的后幾節(jié)了。
二、安裝NPM、MongoDB、Git 1. 安裝NPM沒有npm怎么能做Node開發(fā),所以安裝npm必然是第一步。
安裝的方式不止一種,可以直接下載壓縮包,但是在服務(wù)器上明顯不是最科學(xué)的方式。建議采用package manager的方式下載,可參考官方教程。
照例把重要步驟翻譯一下:
在服務(wù)器shell里輸入curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -,會(huì)將最新的Nodejs v6下載。完成后,再用yum安裝:yum -y install nodejs。
備注:給不知道yum是什么的同學(xué)簡(jiǎn)單科普下,它是CentOS、Fedora系統(tǒng)里預(yù)裝的Shell前端軟件包管理器,幫助開發(fā)者簡(jiǎn)便地安裝一些常用軟件。
2. 安裝MongoDBMongoDB作為最受歡迎的非關(guān)系數(shù)據(jù)庫,十分強(qiáng)大。同時(shí)又輕量,部署也不難,作為入門Nodejs,或者說入門數(shù)據(jù)庫的不二之選。同樣,用yum來下載安裝,可參考官方指導(dǎo)。重點(diǎn)部分如下。
Step 1. 準(zhǔn)備yum的repo文件在下載安裝前,有一步準(zhǔn)備工作不可或缺,那就是為yum設(shè)置下載MongoDB的配置文件。在/etc/yum.repos.d/路徑下,存儲(chǔ)著yum所有的repo配置文件,類似下圖。你可能注意到了,里面有個(gè)mongodb-org-3.4.repo文件,就是安裝mongo前需要準(zhǔn)備好的。
接下來你懂得,在以上目錄中touch一個(gè)新文件,命名為mongodb-org-3.4.repo,在其中寫入以下設(shè)置信息:
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.ascStep 2. 安裝、啟動(dòng)MongoDB
安裝命令:yum install -y mongodb-org。
啟動(dòng)命令:service mongod start。
啟動(dòng)完成之后,保險(xiǎn)起見,還是看下是否成功啟動(dòng)運(yùn)行了,可以到/var/log/mongodb/mongod.log路徑下查看此log,如果有[initandlisten] waiting for connections on port
備注:關(guān)于如何關(guān)閉、手動(dòng)重啟、卸載數(shù)據(jù)庫等操作,都可以在上面的官方文檔中找到。
3. 安裝Git相信大部分開發(fā)者的代碼管理都是依靠git了,那么要把代碼部署到服務(wù)器上,git是必不可少的。
安裝git可能是最簡(jiǎn)單的一步,命令:yum install git。就這樣git就裝好啦。
三、安裝PM2理論上來說,完成上面的工作,你的服務(wù)就能跑起來了。但是服務(wù)的進(jìn)程管理,即便對(duì)于初學(xué)者來說,也是必不可少的一課。畢竟初學(xué)者代碼bug多不穩(wěn)定的話,crash后能及時(shí)重啟、能實(shí)時(shí)監(jiān)控等就顯得更加重要。在這里,推薦的也是十分流行的進(jìn)程管理工具pm2。
首先要會(huì)的是安裝,和其他所有Nodejs的第三方包一樣,用npm即可:npm install pm2@latest -g。這樣,就全局安裝了pm2。
其次,當(dāng)部署了代碼之后,默認(rèn)啟動(dòng)方式為node XXX,XXX應(yīng)該是你的啟動(dòng)文件。有了pm2之后,你就可以pm2 start XXX了。如果要實(shí)現(xiàn)自動(dòng)重啟,那么加一個(gè)--watch就行了。
其他常用命令還包括:
結(jié)語從寫下第一行JavaScript,到發(fā)布自己寫的第一個(gè)網(wǎng)站,編程菜鳥的我踩了無數(shù)的坑。即便一個(gè)小問題可能困擾我一個(gè)星期,希望此文能幫到同是初學(xué)者的你。填坑的成就感不就是寫代碼的樂趣嗎~
最后,順便安利下我自己寫的一個(gè)客戶信息及工單管理平臺(tái),適合初學(xué)者參考~~祝大家開發(fā)愉快!
參考文檔搭建Nodejs服務(wù)器
備注文中的命令要是執(zhí)行不了的話,多半是因?yàn)闄?quán)限問題,在命令前面加個(gè)sudo就好。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91189.html
摘要:大家好,今天我們來了解如何使用在各種云服務(wù)提供商的平臺(tái)上部署。是一個(gè)可以幫助我們?cè)谧约旱碾娔X云服務(wù)提供商的平臺(tái)以及我們數(shù)據(jù)中心的機(jī)器上創(chuàng)建機(jī)器的應(yīng)用程序。支持幾個(gè)流行的云平臺(tái),如及其它等等,所以我們可以在不同的平臺(tái)使用相同的接口來部署。 大家好,今天我們來了解如何使用Docker Machine在各種云服務(wù)提供商的平臺(tái)上部署Docker。Docker Machine是一個(gè)可以幫助我們?cè)谧约旱?..
摘要:網(wǎng)站的遷移遷移主要用到了命令,當(dāng)然網(wǎng)站小文件比較多的情況下例如,那么最好先打包在遠(yuǎn)程拷貝,速度會(huì)快很多。但是在服務(wù)器上安裝的時(shí)候死活提示缺少依賴。 從 vultr 遷移到 digitalocean 幾個(gè)月前收到 digitalocean 發(fā)來的郵件,說因?yàn)槲已?qǐng)用戶注冊(cè)并達(dá)到他的要求,送了我50刀的額度,本來就沒想到它能送,結(jié)果不久之前它又送了一次,果斷讓我產(chǎn)生了回到它的懷抱的念頭,...
摘要:云存儲(chǔ)問題,帳號(hào)系統(tǒng),多端同步最開始只想做瀏覽器本地的存儲(chǔ),使用提供的存在本地就。具體解決方案云存儲(chǔ)及帳號(hào)系統(tǒng)使用提供的存儲(chǔ)服務(wù)解決。 0. 目錄 要開發(fā)的是什么項(xiàng)目 1.1 想法開端 1.2 應(yīng)該有什么功能? 開發(fā)需要解決的核心問題 具體解決方案 3.1 帳號(hào)系統(tǒng) 3.2 存儲(chǔ)服務(wù) 3.3 使用`LeanEngine`做反防盜鏈中轉(zhuǎn)接口 3.4 Chrome 插件實(shí)現(xiàn) 對(duì)去...
閱讀 830·2021-07-25 21:37
閱讀 3714·2019-08-30 15:55
閱讀 2639·2019-08-30 15:54
閱讀 1802·2019-08-30 15:44
閱讀 3175·2019-08-30 15:44
閱讀 920·2019-08-30 15:43
閱讀 1128·2019-08-29 15:36
閱讀 3127·2019-08-29 10:58