この記事は、あなたの Mix-Space バックエンド Core がリモート MongoDb / Redis データベースを使用している場合、または MongoDB / Redis のパスワードを設定する必要がある場合に参考にしてください。
|| 特に必要がなければ、無駄にいじらない方がいいですよ ||
私の環境#
- サーバー A:MongoDB と Redis をデプロイ
- サーバー B:Mix Space Core をデプロイ
MongoDB 設定#
私は 1Panel ストアでインストールしたもので、デフォルトで root ユーザーが作成されます;mx-space は mx-space データベースに接続する必要があり、root ユーザーは直接使用できないため、mx-space データベース用に新しいユーザーを作成することにしました。
- root ユーザーで MongoDB に接続
mongosh --host <host> --port <port> -u <admin_user> -p <admin_password> --authenticationDatabase admin
# 私はMongoDBコンテナ内で実行しているため、--host , --portは必要ありません
- mx-space データベースに切り替え
use mx-space
- mx-space データベース用のユーザーを作成
db.createUser({
user: "UserName", // ユーザー名
pwd: "UserPassword", // ユーザーパスワード
roles: [
{ role: "readWrite", db: "mx-space" }, // ユーザーにreadWrite権限を付与
{ role: "dbAdmin", db: "mx-space" } // ユーザーにdbAdmin権限を付与
]
})
- 検証とテスト
show users
# ユーザーが正常に作成されたか確認
mongo --username UserName --password UserPassword --authenticationDatabase mx-space
# 接続テスト
MongoDB には認証データベースと接続データベースがあり、最初はずっと root ユーザーを使っていたため、mx-space に接続できませんでした;これらのデータベースについては詳しくは分かりませんが、非常に重要ですので、理解しておくと良いでしょう(
Redis 設定#
特に特別な設定はありません。私は MongoDB と同じサーバーにインストールしましたが、MongoDB から分離できるはずです。しかし、フロントエンドの auth に問題があり、正しく読み込めなかったため、MongoDB と一緒にデプロイすることにしました。
注意が必要なのは:この 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