Linux 下配置 node + mongodb 環境

一、下載node、解壓、添加到全局變量

下載javascript

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

解壓java

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

把node、和npm添加到全局變量node

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

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

二、mongodb 的安裝

mongodb 官網,找到對應linux系統的安裝包。個人服務器系統是 centos7mongodb

  • 下載安裝包
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 目錄下數據庫

經過配置文件方式啓動express

./mongod -f mongodb.conf

登陸npm

mongo

中止centos

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

服務器

db.shutdownServer();

三、mongoose 鏈接數據庫

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

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

四、配置 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

五、安裝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   //重啓
相關文章
相關標籤/搜索