GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで2つのWebサーバーを自動的に同期する方法

Linux愛好家から本番/サーバー環境のLinux管理者/スーパーユーザーに卒業すると、複数のWebサーバーを操作する意味がわかり始めます。

現時点では、2つの同様のWebサーバーを同時に実行するロジックは見当たらないかもしれませんが、追加のサーバー環境を使用すると、プライマリサーバーの理想的なバックアップ計画が作成されるようになるでしょう。

[次のこともお勧めします:Lsyncd –ローカルディレクトリをリモートLinuxと同期する]

避けられないWebサイトのダウンタイムを削減または対処するには、プライマリWebサーバーから自動的に引き継ぐようにセカンダリWebサーバーを設定する必要があります。 2つのWebサーバーが相互に通信できるようにするこのセットアッププロセスは、サーバー同期と呼ばれます。

Webサーバー同期の利点

Webサーバーの同期操作を行うことのいくつかの利点について説明しましょう。

  • プライマリサーバーとセカンダリサーバーの間でデータをコピーする場合、初期サーバー環境の権限、所有権、およびその他の特別な属性設定が保持されます。
  • 対象となるデータ転送は圧縮および解凍データ転送プロトコルに準拠しているため、より少ない帯域幅を処理することになります。
  • プライマリWebサーバーに既にユーザーが削除したファイルとディレクトリがあり、セカンダリサーバーにこれらのファイルとディレクトリが残っている場合、データ転送と同期のプロセスでこれらのファイルとディレクトリを確認および削除して、2つのサーバーのディレクトリを確認します構造は同期しています。
  • 2つのサーバーの同期アクションは、変更されたデータバイトとブロックにも適用されます。
  • サーバー間データ転送操作中のデータ暗号化が心配な場合、このWebサーバー同期メカニズムは SSHをサポートします;暗号化されたネットワークプロトコル。

2台のWebサーバーを同期するための要件

この場合、2つのWebサーバーを実行し、それぞれのドメイン名またはIPアドレスを使用する必要があります。私の場合、プライマリWebサーバーとセカンダリWebサーバーとして次の2つのサーバーを使用します。

Main server IP address: 3.135.207.198
Secondary server IP address: 18.118.208.79

2台のWebサーバーを同期するためのRsyncのインストール

Webサーバーの同期操作を成功させるには、rsyncツールの助けが必要になります。次のパッケージインストールコマンドのいずれかから、お好みのLinuxディストリビューションサーバーにインストールできます。 Rsyncのインストールは、同期するメインサーバーとセカンダリサーバーの両方で行う必要があります。

$ sudo apt-get install rsync     [On Debian, Ubuntu and Mint]
$ sudo yum install rsync         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/rsync  [On Gentoo Linux]
$ sudo pacman -S rsync           [On Arch Linux]
$ sudo zypper install rsync      [On OpenSUSE]    

LinuxでRsyncを使用して2つのWebサーバーを同期する

同期を実行する前に、メイン/プライマリサーバーでrsyncユーザーを確認してください。すでに確立されているルートを使用できます Linuxシステムのユーザー。私の側では、既存の ubuntuを使用します ユーザー。

次に、アクティブなプライマリサーバーとセカンダリサーバーで同期するサーバーディレクトリを特定する必要があります。私の側では、Webサーバーディレクトリを同期しようとします / var / www 両方のサーバーに存在します。

バックアップ/セカンダリサーバーで、次の rsyncを実行します / var / wwwをポイントしてリンクするコマンド メイン/プライマリサーバー上のディレクトリ。

$ sudo rsync -avzhe ssh [email protected]:/var/www/ /var/www/

実行されたrsyncによる 上記のスクリーンキャプチャからのコマンドにより、メインサーバーに存在していたファイルとディレクトリが同期され、バックアップサーバーにコピーされました。

[あなたも好きかもしれません:Linuxでファイルを同期するときにRsyncが進行状況を表示します]

LinuxでRsyncを使用して2つのWebサーバーを自動的に同期する

Webサーバーを毎回手動で同期する必要はありません。この同期操作を自動化するには、次の2段階のアプローチを検討してください。

ステップ1:SSHパスワードレスログインの設定

バックアップ/セカンダリサーバーでは、公開鍵と秘密鍵が必要です。次のコマンドから生成できます:

$ sudo ssh-keygen -t rsa -b 2048 

バックアップサーバーで上記のコマンドを実行することを忘れないでください。

また、[ Enter を押して、パスフレーズの設定をスキップすることを忘れないでください ]パスフレーズフィールドを空白のままにします。

次に、これらの生成された公開鍵と秘密鍵をバックアップサーバーからプライマリ/メインサーバーにコピーする必要があります。この目的を達成するには、次のようなコマンドを使用します。

$ sudo ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

次に、メインサーバーにアクセスし、メインサーバーに新しく追加されたキーを確認します。

$ ssh [email protected]
$ sudo nano .ssh/rsa

これで、必要なキーファイルを2台のサーバー(プライマリサーバーとセカンダリサーバー)と共有することができました。

ステップ2:Cronジョブを介して2つのWebサーバーを自動的に同期する

バックアップ/セカンダリサーバーで、自動サーバー同期用にcrontabファイルを構成します。

$ sudo crontab -e

crontabファイルを開くためのエディターを選択するように求められます:

開いたファイルの下部に、サーバーを同期するためのcronジョブスケジュールを追加します。

*/5   *   *   *   *   rsync -avzhe ssh [email protected]:/var/www/ /var/www/

crontabファイルの上記のcronジョブエントリに従って、メインWebサーバーとプライマリWebサーバーは5分ごとに自動的に同期されます。

変更を保存してエディタを終了すると、cronジョブがインストールされてアクティブ化されます。

$ sudo crontab -e

プライマリWebサーバーをセカンダリWebサーバーと自動的に同期することで、サーバーのダウンタイムの問題やエラーに対処する必要がなくなり、アクティブな状態を維持したい生産的でトラフィックの多いWebサイトサーバーの完全なバックアップ計画が作成されます。


Linux
  1. LinuxサーバーをNTPプールプロジェクトに参加させる方法

  2. LinuxにNginxWebサーバーをインストールする方法

  3. これが Linux サーバーの動作方法です

  1. Debian10LinuxにApacheWebサーバーをインストールする方法

  2. 仮想化 Linux サーバーのインストール方法

  3. 最高の Web Linux サーバー

  1. Chronyを使用してLinuxサーバーで時刻を同期する方法

  2. LinuxでNGINXWebサーバーを強化および保護する方法

  3. LinuxサーバーにGrafanaをインストールする方法