阿里雲部署 nodejs+mongoDB 傻瓜教程
寫在前面的話:把專案部署到阿里雲上之前,我也在網上搜過很多教程,所有的教程幾乎都是大概有點兒基礎的人才能看得懂的,相類似我這樣的,在本機上寫完程式碼就完全不知道怎麼辦的人,看到教程直接就開始上yum...之類的程式碼,甚至都不知道要寫到哪裡去,所以在完成我自己的這個專案之後,寫一個像這樣子的傻瓜教程,希望很多初學者可以按著步驟能夠找到下一個按鍵或者打字的地方在哪裡……
目錄
一、阿里雲申請/購買伺服器
二、下載及安裝putty和Xftp
三、為雲伺服器安裝環境
01.連線雲伺服器
02.安裝node.js
03.安裝mongoDB
四、上傳程式碼
五、啟動應用
六、大功告成
一、阿里雲申請/購買伺服器
01. 搜尋引擎搜尋阿里雲,進入阿里雲的網站
02. 點選登陸(如果沒有註冊請先註冊)
03. 點選 產品
一、阿里雲申請/購買伺服器
01. 進入阿里雲官方網站,找到雲伺服器ECS。
阿里云云伺服器地址: 阿里雲伺服器
02. 重點看這裡,由於是個人小網站,就沒有必要買那麼貴的啦,這個1核1G的就可以了。每年330塊錢,摺合每個月不超過30塊。作業系統我選的是centOS 6.5。點選立即購買。
03. 點選立即購買之後進入到確認訂單頁, 會有一個設定密碼。這個密碼設定好之後要記住,待會兒要用到。設好密碼之後點選去下單。
04. 好了,去付錢吧。
05. 買好雲伺服器之後,你在阿里雲的首頁,登陸之後可以直接點選右上角的控制檯
06. 在左邊點選雲伺服器ECS
09. 找到你剛才購買地區,執行中字樣的圖示。我買的是雲伺服器,有一個在執行中,就是這個,點選執行中1
10. 這時候你就可以看到你買到的雲伺服器了,注意我用紅框框出來的位置,這個IP地址就是你的公網IP,後面要用到。
二、下載及安裝putty和Xftp
putty 是用於連線你手頭上這臺電腦以及你剛才購買的阿里雲伺服器,沒有這個軟體,你都不知道上哪兒敲部署教程裡面的那些個字母(沒錯,我就是白痴到竟然在這個步驟走了許多彎路)
Xftp 用於部署好之後把你本地寫好的程式上傳到雲伺服器
tips:putty直接下載就可以用了,Xftp下載好之後安裝,一直下一步也可以了。
三、為雲伺服器安裝環境
01. 連線雲伺服器
A.雙擊putty
B.出現的這個頁面填寫紅框內資訊,host name那裡填寫剛才申請的阿里雲的公網IP,port一般是22,選擇SSH,only on clean exit。點選open
C.然後進入這個狀態,
輸入root,回車。這時它會讓你輸入密碼(tips),回車。出現
的時候,表示連線遠端伺服器成功了。
tips:注意linux系統,輸入密碼的時候不會出現任何字元包括空格或者*號,放心吧不是電腦壞了。當初我做的時候從來沒有用過linux系統,一度懷疑我自己是不是又哪裡操作錯了,導致沒反應
02. 把yum更新到最新版本:
yum -y update
03. 我們將使用最新原始碼構建Node.js,要進行軟體的安裝,需要一組用來編譯原始碼的開發工具:
yum -y groupinstall
"Development Tools"
04. 安裝node.js
A.開始安裝Node.js,先進入/usr/src資料夾,這個資料夾通常用來存放軟體原始碼:
cd /usr/src
B.從Node.js的站點中獲取壓縮檔原始碼,我選擇的版本為v6.9.1:
wget http://nodejs.org/dist/v6.9.1/node-v6.9.1.tar.gz
tips:以上安裝nodejs的地址所包含的版本號,你需要跟根據不本地配置使用的nodejs版本來決定,先找到自己的版本號,然後把以上地址的‘6.9.1’替換成你使用的版本號
C.解壓縮原始檔,並且進入到壓縮後的資料夾中:
tarzxfnode-v6.9.1.tar.gz
cdnode-v6.9.1
D.執行配置指令碼來進行編譯預處理:
./configure
E.開始編譯原始碼
make
F.當編譯完成後,我們需要使之在系統範圍內可用,編譯後的二進位制檔案將被放置到系統路徑,預設情況下,Node二進位制檔案應該放在/user/local/bin/node資料夾下
make install
G.
現在已經安裝了Node.js,可以開始部署應用程式。首先要使用Node.js的應用管理模組,pm2(用於啟動程式並在需要時重啟非常有用的模組):
npm -g install pm2
H.建立超級連結,不然 sudo node時會報 "commandnot found"
sudo ln -s
/usr/local
/bin/node
/usr/bin/node
sudo ln -s
/usr/local
/lib/node
/usr/lib/node
sudo ln -s
/usr/local
/bin/npm
/usr/bin/npm
05. 安裝mongoDB(資料庫)
A.進入資料夾/usr/local,下載mongodb原始碼:
cd
/usr/local
wget http:
//fastdl.mongodb.org
/linux/mongodb-linux-x86_64-
3.2.
11.tgz
tips:同樣,以上mongoDB安裝的地址所涉及的版本號,也請根據你本地安裝的版本進行更改
B.解壓安裝包,重新命名資料夾為mongodb
tarzxvfmongodb-linux-x86_64-3.2.11.tgz
mvmongodb-linux-x86_64-2.4.9mongodb
C.在var資料夾裡建立mongodb資料夾,並分別建立資料夾data用於存放資料,logs用於存放日誌
mkdir /
var/mongodb
mkdir /
var/mongodb/
data
mkdir /
var/mongodb/logs
D.開啟rc.local檔案,新增CentOS開機啟動項:
chmod +x /etc/rc.d/rc.local
tips:有很多的教程這一步的內容是 vim/etc/rc.d/rc.local,但是不知道是由於我選的是linux7.0的系統還是什麼理由,這個方式(vim /etc/rc.d/rc.local)不能成功,經過不停搜尋查詢,(chmod+x /etc/rc.d/rc.local)就沒問題了。
E.將mongodb啟動命令追加到本檔案中,讓mongodb開機自啟動:
/usr/local
/mongodb/bin
/mongod --dbpath=/var
/mongodb/data --logpath
/var/mongodb
/logs/log.log -fork
F.啟動mongodb
/usr/local
/mongodb/bin
/mongod --dbpath=/var
/mongodb/data --logpath
/var/mongodb
/logs/log.log -fork
G.看到如下資訊說明已經安裝完成併成功啟動:
forked proces
s:18394
tips:數字不一定是要這個數字,是什麼數字不重要,出現類似這樣的就可以了
F.tips:給mongodb加密碼
這一步可以說非常重要也可以說不重要,如果你只是想要嘗試一下使用伺服器看看自己的應用。其實可以不用加密碼就可以用了(可以直接跳過F.tips這個步驟)。
但是如果你的mongo沒有加密碼,那麼你很有可能被掃庫程式刪光你的資料(網上流傳的一中病毒概念的東西,會一次性刪光你的資料,再留下聯絡方式需要你付款索回【不知道對不對,如果有知道的朋友請提示我】),當初我剛開始弄好mongo的時候,就是沒有加密碼,老是被清光,然後我又一次一次的把資料加回去。(當時看了一下加密碼教程,覺得好麻煩啊,我又不是真的要經營網站,只是想看看效果,就沒有加密碼)
首先我們進入mongo,新增帳號密碼
mongo
進入資料庫 admin
use admin
新增賬號密碼
db.createUser({user: "test",pwd: "123", roles: ["root"]})
返回 Successfully added user: { "user" : "test","roles" : [ "root" ] }說明使用者建立成功了。
退出(按ctrl + c)
接下來我們要開啟mongo配置檔案為需要驗證使用者才能登陸
先關閉mongo服務
sudo service mongod stop
修改配置檔案。
sudo vim /etc/mongod.conf
長這樣
我們加上
security:
authorization:enabled
後長這樣
啟動mongo服務
sudoservice mongod start
再次進入mongo(這次只是嘗試能不能成功登陸)
useadmin
db.auth("test","123")
返回1表示登陸成功了。(同樣的,你的程式連線資料庫的時候應該要寫好相應的使用者名稱密碼,不然程式連不上庫哦)
繼續tips:程式連線資料庫,我的程式使用的是mongoose,那麼我用mongoose來舉例,如果你們用的是其他的npm包,那就自己去查查資料了哦。
mongodb://<mongo使用者名稱>:<mongo密碼>@$<ip地址>:<port埠號>/<資料庫名>?authSource=admin
比如說剛才我設定的使用者名稱是test,密碼是123,ip地址是192.168.2.2(剛才買的阿里雲伺服器的外網ip),埠號是27017(沒有重新設定的mongo埠號都是27017),想要連線的資料庫名是mybase。那麼我應該寫成
mongodb://test:[email protected]:27017/mybase?authSource=admin
tips:據說曾經有人設密碼的時候密碼裡有"@"字元,這你就要想想你為什麼要作死了[doge]
四、上傳程式碼
這個時候雲伺服器的環境其實已經裝好了,可以暫時告別一下putty了
01. 雙擊開啟Xftp
02. 點選新建
03. 出現一下視窗,名稱自己取一個專案名稱。主機,填寫阿里雲伺服器的公網IP,協議選擇SFTP,埠使用22,使用者名稱root,密碼為購買阿里雲的時候要你記住的密碼。最後點選確定。
04. 你將進入你所建立的阿里雲內的root資料夾,雙擊 去到上一層,
找到home資料夾,雙擊進入。
05. 左邊框的資料夾就是你本機電腦中的資料夾,在當中找到你在本機建立的專案的所有檔案,點選右鍵,傳輸。那麼你就可以在下面的框中看到傳輸的過程。這時候耐心等待傳輸完畢。
五、啟動應用
程式碼已經上傳完了,這時候我們回到putty
01. 進入存放程式碼的目錄,存放在/home/app目錄下,server.js為程式入口檔案
cd /home/app
sudo pm2 start server.js --name app
出現這個畫面(或者類似的畫面,因為pm2初次啟動可能會顯示一些更多的畫面),恭喜你,部署成功了。
tips:以上home資料夾下的app資料夾為你專案所在的資料夾,server.js為你程式的入口檔案,可以根據你的實際情況改變為你實際所寫的名稱。--name後面跟的是你為你的應用程式取的名字。方便以後你檢視你的應用執行情況的時候比較清晰。
tips2:以上其實已經結束了。不過如果你的伺服器是多核的,你想通過將node應用叢集化的方式來完成利用好自己伺服器的多核(由於node是單執行緒的,直接啟動只能利用到一個核,當你的伺服器是多核的,只用一個核就有些浪費了,而叢集化利用好多核有助於分擔應用壓力),而pm2就是一個非常方便用來將node 應用叢集化的模組。
cd /home/app
sudo pm2 start server.js --name app -i 4
後面加上 -i表示將該應用叢集化佈置為4份,因為我的電腦是4個核的。想要知道你的電腦是幾核的。可以這樣得出
node
>os.cpus().length
得出來的數字是幾就是幾核。(如果你只是想要幫助自己理解一下部署,而部署並不是你發展的方向,可以跳過tips2)
tips:檢視執行中的應用:
sudo pm2 list
如果需要關閉應用,命令如下:
sudo pm2 stop app
如果需要刪除應用,命令如下:
sudo pm2 delete app
如果需要檢視應用日誌,命令如下:
sudo pm2 log app
六、大功告成
這時開啟你的瀏覽器,輸入你所購買的阿里雲的公網IP 加上 你入口程式server.js中所listen的埠號(比如我阿里雲的公網ip為1.1.1.1,listen的埠號為8000,那麼我輸入的網址就是http://1.1.1.1:8000)開啟看看是不是你的網站
happy endding