通過阿裏雲ECS從零開始構建網站
Elastic Compute Service(ECS)是阿裏雲提供的一種基礎雲計算服務。使用雲服務器 ECS 就像使用水、電、煤氣等資源一樣便捷、高效。無需提前采購硬件設備,而是根據業務需要,隨時創建所需數量的雲服務器實例,並在使用過程中,隨著業務的擴展,對雲服務器進行擴容磁盤、增加帶寬。如果不再需要雲服務器,也可以方便的釋放資源,節省費用。此外,阿裏雲服務器超低折扣正在進行中,最低每月僅需30元,詳情訪問活動頁。
為幫助大家基於ECS構建自己的網站,本文將逐步介紹如何在ECS上架設自己的網站。現在網站主流的技術一般都采用Nginx+Mongodb+NodeJS,本教程將就此技術進行介紹,具體所涉及到的技術棧如下表所示:
係統組件 | 簡介 |
---|---|
Nginx | nginx(發音"engine x")是俄羅斯軟件工程師Igor Sysoev開發的免費開源web服務器軟件。nginx於2004年發布,聚焦於高性能,高並發和低內存消耗問題。並且具有多種web服務器功能特性:負載均衡,緩存,訪問控製,帶寬控製,以及高效整合各種應用的能力,這些特性使nginx很適合於現代網站架構。目前,nginx已經是互聯網上第二流行的開源web服務器軟件。 |
MongoDB | MongoDB 是由C++語言編寫的,是一個基於分布式文件存儲的開源數據庫係統。在高負載的情況下,添加更多的節點,可以保證服務器性能。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。麵向文檔存儲,操作起來比較簡單和容易,在一些業務場景甚至可替代Mysql |
NodeJS | Node.js就是運行在服務器端的javascript。node.js是一個基於Chrome Javascript運行時建立的一個平台。是一個事件驅動I/O服務端JavaScript環境(由C++編寫),基於Google的V8引擎,V8引擎執行Javascript的速度非常快,性能非常好。 |
配置yum源
由於ECS係統默認依賴包不全,需要添加epel源,以後後期依賴包的完整下載,具體配置步驟如下:
- wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- rpm -ivh epel-release-latest-7.noarch.rpm 然後通過下列命令檢查是否已添加至源列表
- yum repolist
準備相關依賴包
由於後續的服務器及nginx等在安全上、正則表達式方麵有相關包的依賴,因此添加完epel源之後,還需通過下列命令下載相關依賴包,yum部署會根據需求,自行下載相關依賴包
1. yum install zlib pcre pcre-devel openssl openssl-devel pcre* zlib* -y
具體過程如下圖所示
如果出現下圖紅色部分“complete”字樣,則表示相關依賴包順利下載完成,如
服務搭建
完成前麵Yum源的配置及依賴包的下載之後,便可以架設本次網站需要的服務了,首先需要對Nginx進行編譯部署,具體步驟如下:
下載Nginx包,將包放到 /opt目錄下;(過程如圖)
執行命令: cd /opt && wget https://nginx.org/download/nginx-1.10.0.tar.gz
命令執行成功的話,可以看到如下圖所示的結果頁麵。然後通過執行下列命令進行默認編譯安裝
tar zxvf nginx-1.10.0.tar.gz && cd nginx-1.10.0 && ./configure --prefix=/opt/nginx && make && make install
編譯安裝成功後會得到如下圖所示的結果:為取得良好的性能,我們安裝兩個Nginx服務,按照第二步重複執行命令即可。
需要注意的是需要對prefix指定的安裝目錄進行修改,此處修改為Nginx_28819,如下圖所示完成後,需要修改Nginx_28819服務端口,在文件路徑: /opt/nginx_28819/conf/下找到nginx.conf文件,然後執行下列命令:
sed -i 's/80/28819/' /opt/nginx_28819/conf/nginx.conf
通過此命令旨在將原先配置文件80端口更改為28819端口,這麼做的原因很簡單:同一台機器兩個服務端口一樣,是不能正常啟動,故需要修改端口5>在正式啟動Nginx服務之前,需要對配置文件Nginx.conf進行校驗,以避免出現不必要的問題,具體執行命令如下:
/opt/nginx/sbin/nginx –t
沒有問題的話,將出現如下圖所示的結果
然後再執行下列命令
/opt/nginx_28819/sbin/nginx –t
如果出現下圖紅色標識的結果,則表示校驗通過
完成校驗後,通過下列命令啟動nginx
/opt/nginx/sbin/nginx && /opt/nginx_28819/sbin/nginx
然後通過下列兩條命令驗證nginx是否正常運行:
netstat –ntlp|grep 80
netstat –ntlp|grep 28819
如果正常運行,將出現下圖的結果。
至此,完成ngnix部署與啟動。
完成nginx編譯部署、啟動之後,需要再安裝部署授權模式Mongodb,具體步驟如下:
1. 首先通過執行下列命令下載Mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz
下載完成後,在當前目錄下會出現mongodb對應的安裝文件,如下圖所示
2. 下載完成後,需要對Mongodb安裝包進行解壓,然後並重命名文件夾為mongod(為簡化操作起見),然後再創建DB和log文件夾,並創建日誌文件,執行命令如下:
tar zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz && mv mongodb-linux-x86_64-rhel70-3.2.4 mongod && cd mongodb && mkdir db && mkdir log && touch /opt/mongod/log/mongodb.log
3. 完成前述操作後,直接通過下列命令啟動服務端Mongodb並指定端口為28820
setsid bin/mongod --dbpath=/opt/mongod/db --logpath=/opt/mongod/log/mongodb.log --port=28820 &
4. 然後通過下列命令添加用戶並驗證是否正常啟動
/opt/mongod/bin/mongo 主機IP:28820
具體如下圖所示:
在交互式命令行中敲入命令:use admin,如下圖所示
通過此命令進行管理員用戶模式,在該模式下可以創建用戶,此處帳號設定為zzhgreentown, 密碼設定為greentown。然後在交互命令行中敲入命令:
db.createUser(
{
user: "zzhgreentown",
pwd: "greentown",
roles: [ { role: "root", db: "admin" } ]
}
)
5. 完成用戶創建後,重啟Mongodb服務,並以授權模式啟動,具體執行命令如下:
kill -9 ps -ef|grep mon|grep -v grep|awk '{print $2}'
&& setsid bin/mongod --dbpath=/opt/mongod/db --logpath=/opt/mongod/log/mongodb.log --auth --port=28820 &
完成後,通過show dbs驗證服務是否正常重啟,主要確認:進程是否在;端口是否正常監聽;登錄Mongodb;匿名及登錄查看admin是否報錯,如下圖所示:
至此,完成MongoDB的安裝與部署。
最後,需要配置NodeJS環境,具體步驟如下:
1. 進行Node部署,執行如下命令:
cd /opt && wget https://nodejs.org/dist/v6.10.2/node-v6.10.2.tar.gz && ./configure --prefix=/usr/local/node && make && make install
然後通過node –v命令進行部署驗證,如下圖所示:
2. 然後執行下列命令進行Npm部署
yum install –y npm htop && npm install -g pm2
完成後,通過npm –v命令驗證部署,如下圖所示:
至此NodeJS環境部署完成。
部署代碼包&&驗證
源碼包含三個文件夾: ylj.zip(楊柳郡報名頁麵),client.zip(後端管理頁麵),server.zip(服務端)如下圖
1. unzip ylj.zip將解壓的html文件夾移至/opt/nginx(mv html/ /opt/nginx)文件夾下
2. unzip client.zip將解壓的html文件夾移至/opt/nginx_28819(mv html/ /opt/nginx_28819)文件夾下
3. unzip server.zip;cd server;然後執行命令npm i —-production(持續時間稍長),待完成後執行pm2 start index.js開啟服務即可完成部署。
參考文檔:
https://www.nginx.cn/doc/general/overview.html
https://www.runoob.com/mongodb/mongodb-intro.html
https://blog.csdn.net/u012299002/article/details/51101016 https://www.centoscn.com/image-text/config/2014/1108/4095.html
最後更新:2017-07-08 17:02:33