banner
jiuyue

jiuyue

JiuYue

Mix-Space後端Core使用遠程資料庫

文章適用於:你的 Mix-Space 後端 Core 使用遠程 MongoDb / Redis 數據庫,或者需要為 MongoDB / Redis 配置密碼,可以參考此篇

|| 如果沒有特別需要就不用瞎折騰了捏 ||

我的環境#

  • 伺服器 A:部署 MongoDB 和 Redis
  • 伺服器 B:部署 Mix Space Core

MongoDB 配置#

我使用 1Panel 商店安裝的,默認創建 root 用戶;mx-space 需要連接 mx-space 數據庫,root 用戶是無法直接使用的,我選擇為 mx-space 數據庫新建一個用戶。

  1. 使用 root 用戶連接 MongoDB
mongosh --host <host> --port <port> -u <admin_user> -p <admin_password> --authenticationDatabase admin
# 我是在MongoDB容器內執行,因此不需要--host , --port
  1. 切換到 mx-space 數據庫
use mx-space
  1. 為 mx-space 數據庫創建用戶
db.createUser({
  user: "UserName",           // 用戶名
  pwd: "UserPassword",      // 用戶密碼
  roles: [
    { role: "readWrite", db: "mx-space" },  // 給用戶 readWrite 權限
    { role: "dbAdmin", db: "mx-space" }     // 給用戶 dbAdmin 權限
  ]
})
  1. 驗證與測試
show users 
# 驗證用戶是否創建成功
mongo --username UserName --password UserPassword --authenticationDatabase mx-space
# 連接測試

MongoDB 有認證庫和連接庫,剛開始就是一直用 root 用戶,導致 mx-space 一直連不上;這兩個庫具體的我也不懂,但是挺重要的,可以了解了解(

Redis 配置#

這個沒什麼特別的配置,我是安裝在與 MongoDB 同伺服器上了,應該能與 MongoDB 分離,但是我遇到問題:前端 auth 有問題,導致無法正確加載,所以就乾脆與 MongoDB 部署到一塊了
image
需要注意的是:這個 RDB 持久化,N 秒內插入 1 條數據,建議默認 3600 秒,或者更高,否則前端可能無法正確獲取到 正在被 XX 人看爆

其他的 Redis 進階配置我就不會了,懂的按需修改就行😢

Core yaml 文件配置#

官方文檔有更詳細的參數說明,請配合使用:
https://mx-space.js.org/docs/core/extra

下面是我目前使用的 docker-compose.yml 配置示例

services:
  app:
    container_name: mx-server
    image: innei/mx-server:latest
    environment:
      - TZ=Asia/Shanghai
      - NODE_ENV=production
      - DB_HOST=127.0.0.1 #數據庫地址
      - DB_USER=username #數據庫用戶名
      - DB_PASSWORD=userpassword #數據庫密碼
      - REDIS_HOST=127.0.0.1 #redis地址
      - REDIS_PASSWORD=redispwd #redis密碼
      - ALLOWED_ORIGINS=www.example.com #允許的前端域名
      - JWT_SECRET=xxxxxxxxx #JWT密鑰
      - ENCRYPT_ENABLE=true #數據庫加密(按需開啟)
      - ENCRYPT_KEY=xxxxxxxxxxxxxxxx #數據庫加密密碼,如果丟失將無法從備份文件恢復,然後可以跑路了(x
    volumes:
      - ./data/mx-space:/root/.mx-space
    ports:
      - '2333:2333'

    networks:
      - mx-space
    restart: unless-stopped
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://127.0.0.1:2333/api/v2/ping']
      interval: 1m30s
      timeout: 30s
      retries: 5
      start_period: 30s
networks:
  mx-space:
    driver: bridge

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://www.vlo.cc/posts/jc/MixSpace_backend_Core_uses_remote_database


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。