ホームページ >運用・保守 >Nginx >高可用性ソリューション: Nginx Proxy Manager を使用してデータベースのマスター/スレーブ レプリケーションを実装する

高可用性ソリューション: Nginx Proxy Manager を使用してデータベースのマスター/スレーブ レプリケーションを実装する

WBOY
WBOYオリジナル
2023-09-27 14:19:501520ブラウズ

高可用性解决方案:利用Nginx Proxy Manager实现数据库主从复制

高可用性ソリューション: Nginx Proxy Manager を使用したデータベースのマスター/スレーブ レプリケーションの実装

はじめに
高可用性は、現代の企業において非常に重要な要件です。オンライン アプリケーションでは、データベースが重要な役割を果たします。データの整合性と信頼性を確保するには、データベースの高可用性を確保するための何らかの措置を講じる必要があります。この記事では、Nginx Proxy Manager を使用してデータベースのマスター/スレーブ レプリケーションを実装するソリューションを紹介し、具体的なコード例を示します。

  1. データベースのマスター/スレーブ レプリケーションとは何ですか?
    データベースのマスター/スレーブ レプリケーションは、一般的に使用される高可用性ソリューションです。データベース操作ログをマスターデータベースに記録し、そのログをスレーブデータベースに送信し、スレーブデータベースがそのログを自身のデータベースに適用することで、マスターデータベースとスレーブデータベースの間でデータ同期を実現します。
  2. Nginx プロキシ マネージャー
    Nginx プロキシ マネージャーは、Nginx に基づく高可用性ソリューションです。リバース プロキシと負荷分散を通じてトラフィックを分散し、高可用性とパフォーマンスを実現します。このソリューションでは、Nginx Proxy Manager を使用してデータベースの高可用性を処理します。
  3. ソリューションの概要
    このソリューションでは、マスター データベースとスレーブ データベースの 2 つのデータベース インスタンスを構成します。マスター データベースはすべての書き込み操作を受信し、操作ログをスレーブ データベースに送信します。スレーブデータベースはマスターデータベースの操作ログを読み込み、自身のデータベースに適用することでデータの同期を実現します。
  4. マスター データベースの構成
    まず、マスター データベースでバイナリ ログを有効にする必要があります。 MySQL 構成ファイルで、次のように設定します。
[mysqld]
log-bin = /var/log/mysql/mysql-bin.log
server-id = 1

次に、構成を有効にするためにメイン データベースを再起動します。

  1. スレーブ データベースの構成
    スレーブ データベースを構成する前に、MySQL がインストールされ、MySQL サービスが停止していることを確認してください。

まず、データベースからレプリケーション パラメータを構成する必要があります。 MySQL 構成ファイルで、次の内容を設定します。

[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
log_slave_updates = 1
read_only = 1

次に、スレーブ データベースを起動し、次の SQL ステートメントを実行します。

CHANGE MASTER TO MASTER_HOST='主数据库IP地址', MASTER_USER='复制用户', MASTER_PASSWORD='复制用户密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;

上記のステートメントのパラメータは、実際のパラメータに置き換えられることに注意してください。独自のパラメータ。

  1. Nginx プロキシ マネージャーの構成
    次に、マスター データベースとスレーブ データベースをプロキシするように Nginx プロキシ マネージャーを構成します。 Nginx Proxy Manager の構成ファイルに、次の内容を追加します。
upstream db_servers {
    server 主数据库IP地址;
    server 从数据库IP地址 backup;
}

server {
    listen 3306;
   
    location / {
        proxy_pass http://db_servers;
        #下面是其他的Nginx配置
    }
}

次に、Nginx Proxy Manager を再起動して、構成を有効にします。

  1. 高可用性のテスト
    この時点で、データベースのマスター/スレーブ レプリケーションと Nginx Proxy Manager が正常に構成されました。高可用性をテストするには、マスター データベースで書き込み操作を試してから、スレーブ データベースで読み取り操作を試して、データが正しく同期されていることを確認します。

結論
上記の構成により、データベースのマスター/スレーブ レプリケーションを正常に実装し、Nginx Proxy Manager を使用して高可用性を実現しました。このソリューションにより、データベース障害時の迅速なデータベース切り替えとデータの信頼性が保証されます。この記事がお役に立てば幸いです!

参考資料:
[1] MySQL ドキュメント. レプリケーション. [リンク]
[2] Nginx ドキュメント. プロキシ TCP および UDP ロード バランシング. [リンク]

以上が高可用性ソリューション: Nginx Proxy Manager を使用してデータベースのマスター/スレーブ レプリケーションを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。