買了阿里雲之後

原文地址:
https://juejin.im/post/5930ef90b123db0064f6c8f5?utm_source=gold_browser_extension

終於戰勝拖延症,備案好了域名,下狠心買了一個阿里雲(低配打了折的還得好幾十一個月,寶寶心裏苦~)。苦歸苦,web環境(主要是爲了node應用服務)還是要搭建起來的,開車了,請坐好扶穩!!!

設計臺詞
一、前戲

除了購買之前需要先買一個域名以及備案,購買的過程中也有事情需要注意。

阿里雲實際上可以看做一臺計算機,在買計算機之前,瞭解配置是必不可少的一步,此前我也諮詢過朋友,然而沒有實踐經驗,難以真正理解。反正從無到有,反正阿里雲的配置可以彈性變更,莫不如聽信阿里的讒言,選一個個人入門型的。

設計臺詞
其它的配置都幫勾選好了,唯獨操作系統是需要自己動手的,在windows和linux之間,請不要猶豫,放棄windows,因爲這是服務器,即使習慣了windows,也應該跳出自己的思維舒適區。然而,linux系統也還有好幾種,這個時候該幹嘛?沒錯,谷歌(或者度娘)。網上有各種優劣對比,走到了這個階段也應該知道自己的側重點了。我選了一個Ubuntu 14.04 64位,Ubuntu和Debian都使用的apt-get的方式安裝軟件,這是我更熟悉的一種方式,並且Ubuntu基於Debian開發,有比Debian更加激進的軟件更新策略,嗯,年輕就應該多嘗試。

自己折騰、實踐,選錯了也沒多大點事,因爲系統是可以重裝的
二、連接

拿到阿里雲實例之後,第一要務就是能夠遠程連接,我發現我在管理界面中點擊遠程連接按鈕進入命令行連接的時候我是不知道root密碼的,好吧,重置密碼吧,重置密碼之後一定要記得重啓,否則密碼是無效的

拿到root密碼,ip,其實就可以把管理後臺擱在一邊了,可以使用你習慣的終端(這裏我mac shell),以ssh的方式遠程登錄,以sftp的方式來上傳下載文件,服務器上編輯文件使用vi

這裏全程使用命令行的方式操作,木有圖形界面,請試着接受,習慣之後,你會發現,這個逼完全是可以裝的,沒有想象中複雜,卻比想象中迅捷

設計臺詞
連接命令:

//ssh連接
# ssh root@yourip
# your root pass

//sftp連接
# sftp root@youip
# you root pass

命令很多,不是本文的重點,網上教程可以搜索到很多,可以找來看看,不需要每個命令都記住,有印象即可,用到可以去查,常用的自然會記住

三、嘗試python啓動最簡單的web服務

使用購買好的域名解析到實例對應的公網ip。

使用ssh命令連接之後,需要確定一個保存web文件的目錄,在/home目錄下創建一個WWW以及WWW/static。使用sftp連接,上傳一個index.html,內容嘛as you wish,主要是用來測試的

//ssh
#cd /home
#mkdir WWW
#cd /WWW
#mkdir static
//sftp
# cd /home/WWW/static
# lcd dir(本地index.html所在目錄)
# put index.html

Ubuntu默認已經安裝了python,直接輸入python命令如果能進入python命令行就可以證明此言不虛了,一個命令就可以啓動一個最簡單的web服務,在瀏覽器輸入:http://youdomain/index.html,如果訪問正常,那麼第一步就成了

# python -m SimpleHTTPServer 80

設計臺詞
四、安裝git

git無疑已經是最流行的代碼管理工具,而github這個基於git進行版本控制的源代碼託管服務也是最流行。我的應用代碼也託管在github上面,安裝git之後,我可以方便的從github更新最新的代碼,這一點很重要。另外Ubuntu的一些軟件也可以基於git安裝

//安裝
# apt-get install git-core
//使用
# cd /home/WWW
# git clone https://github.com/zengwenfu/h5-creator.git
# your github username  
# your github password

五、安裝nvm、node

我這裏需要部署的是基於node的web應用,所以需要安裝node,爲了能在多個node版本中切換如流,需要安裝一個node的版本管理工具nvm

//前面我們已經按照了git,所以可以使用git
# git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`  

//編輯環境變量文件
# cd
# vim .bashrc
//增加
source ~/.nvm/nvm.sh   
// 添加到系統
# source .bashrc

如此nvm便安裝成功了,可以使用nvm來方便的安裝node了,

//查看可用的node版本
# nvm ls-remote
//安裝指定版本,默認已經安裝了npm了
# nvm install 5.8.0

進入上一步中在github中下載的代碼,安裝依賴包,執行啓動命令,不過好像出了點錯誤

# cd /home/WWW/h5-creator
# npm install
# npm start

設計臺詞
六、安裝mongodb

上一步報的錯誤是因爲h5-creator使用了mongodb,然而服務器上沒有安裝所致,所以mongodb也得安裝上

//添加mongodb簽名到APT
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
//創建/etc/apt/sources.list.d/mongodb-org-3.2.list文件並寫入命令
# echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
//更新軟件源列表
# apt-get update
//安裝mongodb(默認是安裝穩定版)
# apt-get install -y mongodb-org=3.2.9 mongodb-org-server=3.2.9 mongodb-org-shell=3.2.9 mongodb-org-mongos=3.2.9 mongodb-org-tools=3.2.9

安裝成功之後,默認已經自啓動,重新到/home/WWW/h5-creator中運行npm start即可正常運行,由於這個node服務默認使用了3000這個端口號,得輸入域名加端口纔可以訪問,當然可以改爲監聽80端口,便可以直接輸入域名訪問應用。然而,倘需要在服務器中部署多個node應用監聽不同的端口,則必有佔不到80端口的應用,如何在訪問網站的時候省去端口號呢,這需要nginx的反向代理,詳情請往下讀

在此之前還有一個問題,啓動了node服務之後,終端界面停留在了node服務日誌的輸出界面中,退出終端,則服務也跟着被中斷了,所以還需要一個管理node進程的pm2。當然pm2解決的問題不單是退出終端界面不中斷服務,衆所周知,node是單線程的,倘若應用出現了未捕獲的異常,那麼進程將中斷,服務也就中斷了,線上產品如此,那是災難性的,使用pm2管理node進程,可以在出錯的時候重啓。

類似的還有基於python的supervisor
七、安裝pm2

pm2是基於node的模塊,使用npm全局安裝即可,不過一定要全局安裝,安裝成功使用pm2代替node啓動node服務

//安裝
# npm install pm2 -g
//進入h5-creator
# cd /home/WWW/h5-creator
//啓動服務
# pm2 start server.js

//pm2 其它常用命令
//查看node進程列表
# pm2 list
//顯示特定進程詳情
# pm2 show id
//重啓
# pm2 restart id
//停止
# pm2 stop id

如此啓動之後,終端不會停留在node應用日誌界面,你可以安安靜靜的離開了~

mei.jpeg
八、安裝nginx

使用nginx的反向代理,可以將同一臺服務器上監聽不同端口的服務,都能以80端口作爲代理入口,定向到特定的服務

//安裝
# apt-get install nginx

nginx的配置文件在/etc/nginx目錄,查看nginx.conf發現如下一句

include /etc/nginx/conf.d/*.conf;

所以的配置文件加入conf.d目錄即可,具體的配置規則,三言兩語也說不清楚,需要找點資料稍微系統的看下,這裏只挑我的配置中的關鍵部分進行說明

 listen       80;
 server_name  h5.facemagic888.com; //域名綁定
 server_tokens off; ## Don't show the nginx version number, a security best practice

 root   /home/WWW/h5-creator;
 index  index.html index.htm;

 .......

 location / {
    ...
    proxy_pass http://localhost:3000; //代理定向到localhost:3000
 }

我註冊的域名是facemagic888.com,可以解析www.facemagic888.com這個一級域名,還可以解析諸如h5.facemagic888.com的二級域名,由於一級域名有別的用途(個人網站,開發中),所以這個h5在線生成工具給了一個二級域名h5.facemagic888.com。這個域名解析到服務器的ip,通過80端口訪問服務器(默認無需輸入)的時候,nginx會轉發到服務器的3000端口應用進行處理

至此,阿里雲的部署配置算是告一段落了,其它的什麼問題,運行的過程中再觀察了,抄小路,去訪問一下部署好的網站吧:http://h5.facemagic888.com/

總結

說起來完成整個過程只有8步,但是涉及到的知識點還是蠻多的,一步一步慢慢嘗試慢慢品,會有很多收穫,just do it

更多精彩,期待您的關注~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章