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


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。