Linux 下配置 node + mongodb 環境

Dean發表於2019-02-16

1、下載node、解壓、新增到全域性變數

下載

wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-x64.msi

解壓

tar -jxv -f node-v8.11.2-x64

把node、和npm新增到全域性變數

ln -s /app/node-v8.11.2-x64/bin/node /usr/local/bin/node

ln -s /app/node-v8.11.2-x64/bin/npm /usr/local/bin/npm

前面是安裝目錄,填寫自已的安裝路徑

2、mongodb 的安裝

mongodb 官網,找到對應linux系統的安裝包。我的伺服器系統是 centos7

  • 下載安裝包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz
  • 解壓
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.0.tgz
  • 改名(也可以不改),改名是為了檔名不要那麼長
mv mongodb-linux-x86_64-rhel70-4.0.0 mongodb4.0.0
  • 建立mongodb資料夾,並把上面解壓後生成的資料夾移到mongodb中去
  • 然後cd到 mongodb/mongodb4.0.0.0/bin 目錄下
  • 建立兩個目錄 data/dbdata/logs 分別用於存放資料庫資料和日誌。
  • 然後在 bin 目錄下建立一個啟動配置檔案 mongodb.conf,填入
# MongoDB start config -2018-06-28

# 設定資料檔案存放目錄
dbpath = /app/mongodb/mongodb4.0.0/bin/data/db

# 設定日誌檔案存放目錄,及日誌檔名
logpath = /app/mongodb/mongodb4.0.0/bin/data/logs/mongodb.log

# 設定資料庫訪問埠號(預設為 27017)
port = 27017

# 設定為以守護程式的方式執行,即在後臺執行
fork = true

然後啟動、停止mongodb、登入
cd 到 /app/mongodb/mongodb4.0.0/bin 目錄下

通過配置檔案方式啟動

./mongod -f mongodb.conf

登入

mongo

停止

./mongod --shutdown --dbpath /app/mongodb/mongodb4.0.0/bin/data/db

db.shutdownServer();

3、mongoose 連線資料庫

npm i -D mongoose
const mongoose = require(`mongoose`)

let url = `mongodb://127.0.0.1:27017/test` // test 庫已存在則連線,不存在,則建立 test 並連線
mongoose.connect(url)

4、配置 https

我用的是阿里雲伺服器,其它的應該也相似

首先去到域名管理,申請 ssl 證照。下載證照。node 用的證照跟Nginx是一樣的。下載Nginx那個就好了。

證照下載解壓後,有兩個檔案,一個是 .key字尾,一個是 .pem 字尾。
service.js 檔案

const https = require(`https`)
const http = require(`http`)
const fs = require(`fs`)
const express = require(`express`)

const app = express()

let port = 8088
let httpServer = http.createServer(app)

let certificate = {
  key: fs.readFileSync(`./certificate/1231231.key`, `utf8`),
  cert: fs.readFileSync(`./certificate/1231231.pem`, `utf8`)
}
let httpsPort = 443
let httpsServer = https.createServer(certificate, app)

httpServer.listen(port, () => {
  console.log(`node http server listening the port ${port}.....`)
})

httpsServer.listen(httpsPort, () => {
  console.log(`node https server listening the port ${httpsPort}.....`)
})

然後啟動伺服器就可以了,不過這樣的啟動方式,一旦關閉命令視窗就結束程式了。服務持久化請看一步。

node service.js

5、安裝forever 守護程式,讓node服務持久化

npm i -g forever

將forever新增到全域性變數

ln -s /app/node-v8.11.2-x64/bin/forever /usr/local/bin/forever

管理服務相關

forever start server.js     //啟動伺服器
forever list                //檢視當前執行的所有服務
forever stopall             //停止所有服務
forever stop server.js      //停止指定檔案
forever restart server.js   //重啟

相關文章