前言:
作為一名前端開發人員,對伺服器的部署運維一直感覺很陌生,但是卻興趣盎然,所以就自己購買了一臺阿里伺服器來學習。接觸到其實很多人在部署服務的過程中也都會或多或少的遇到很多問題(老司機除外),所以就打算把自己在部署伺服器的過程中遇到的問題以及解決的過程記錄下來,一來做個記錄,二來可以拋磚引玉,再來大家可以一起學習。
該系列文章將會從最基本的 node 、mongo 環境安裝講起,逐步深入,最終通過 docker 實現服務的自動構建和部署。 本篇作為系列文章的首篇,主要介紹 node、mongo 及 nginx 的安裝。注:筆者的伺服器為 CentOS 7.3 64位 系統,所以對於其他系統不做講解,畢竟沒有躬身,以免誤導大家。
一、安裝 node
我的個人專案後端部分均基於 node 開發, 所以伺服器安裝 node 就無可避免了。其實 node 的安裝非常簡單便捷,根據官方文件,在 Centos 系統安裝 node 只需要三步。
1、設定repository源:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -複製程式碼
如果你要安裝 Node.js 9:
curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -複製程式碼
2、安裝 nodejs
sudo yum -y install nodejs複製程式碼
3、安裝構建工具(可選)
要從 npm 編譯和安裝本地外掛,你還需要安裝構建工具:
sudo yum install gcc-c++ make複製程式碼
此處遇到的問題: 我在安裝的過程中先配置了 nodejs 6 的 repository源:
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -複製程式碼
後來在配置 nodejs 8 , 卻一直安裝 nodejs 6. 後來找到解決方案,需要先清除 repository源,然後重新配置:
//如果設定多個源,預設會一直按照第一源安裝,所以需要執行以下命令清除源,
sudo rm -fv /etc/yum.repos.d/nodesource*
重新設定:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install nodejs複製程式碼
附上node官方安裝文件: Installing Node.js via package manager
二、安裝 mongo
mongo 官方的安裝文件其實也是非常友好,按照文件步驟一步一步進行即可,服務啟動過程中可能會遇到坑,下文將會介紹:
1、配置包管理系統(yum) 安裝最新版 MongoDB 3.6 , 建立一個 mongo 的包管理檔案 /etc/yum.repos.d/mongodb-org-3.6.repo
,然後在檔案中寫入以下配置:
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc複製程式碼
如果要安裝 3.4 版本,就 建立一個 3.4 的管理檔案 /etc/yum.repos.d/mongodb-org-3.4.repo
,然後寫入:
[mongodb-org-3.4]
name=MongoDB 3.4 Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1複製程式碼
2、安裝 MongoDB 包
sudo yum install -y mongodb-org複製程式碼
3、啟動 MongoDB 服務
sudo service mongod start複製程式碼
簡單 3 步即可完成 mongo 的安裝和服務的啟動
4、停止 MongoDB 服務
sudo service mongod stop複製程式碼
5、重啟 MongoDB 服務
sudo service mongod restart複製程式碼
/var/log/mongodb/mongod.log
檔案為 MongoDB 預設的log檔案,可以檢視服務啟動過程中的所有日誌。
6、使用 MongoDB
mongo --host 127.0.0.1:27017 複製程式碼
通過該命令即可在主機上執行一個 mongo shell。mongo 預設是沒有許可權驗證的,也就是說任何人都可以輕易的連線你伺服器上的 mongo 並對資料進行操作。 所以需要修改 Mongo 的配置檔案,開啟許可權驗證,增加資料庫許可權,也可以修改 繫結的主機ip、 埠號(預設為:27017)。配置檔案修改如下:
//設定日誌檔案
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log
//設定資料儲存目錄
storage: dbPath: /var/lib/mongo journal: enabled: true
//設定服務以後臺進行的模式執行
processManagement: fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
//設定網路連線
net: port: 27017 #預設埠,可以進行修改,例如 28018
bindIp: 127.0.0.1 # 設定繫結ip,只繫結本機
security: authorization: enabled # 開啟許可權驗證,設定完成需要重啟 mongo 服務複製程式碼
關於如何設定 資料庫許可權可以參考我的部落格文章:mongodb資料庫增加管理使用者許可權
在 mongo 服務啟動的過程中如果遇到錯誤:
Starting mongod (via systemctl): Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details. [FAILED]複製程式碼
可以參考我的部落格文章:Mongo 服務啟動踩坑記
三、安裝 nginx
我之前的服務部署時是使用的 http-proxy
配置的服務代理轉發,後來轉用了nginx,主要是學習瞭解一下基本的nginx配置,nginx 的安裝也很簡單方便: 1、增加nginx源:
sudo yum install epel-release複製程式碼
2、安裝 nginx
sudo yum install nginx複製程式碼
3、啟動nginx
sudo systemctl start nginx複製程式碼
現在可以訪問 http://your_ip
來判斷你伺服器上的 nginx 是否啟動成功,如果看到:
恭喜你,現在你的 整套環境配置就已經完成了。 整體來看,在 Centos 上安裝 node、mongo、nginx 都是很簡單的, 無非就是 1、開啟冰箱 2、把大象放進去 3、關上冰箱。 ~
本文首發於我的個人部落格: Centos 從安裝到部署 之 node/mongo/nginx(一)
參考文獻:
Installing Node.js via package manager
Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux
How To Install Nginx on CentOS 7