nginx高可用性クラスタの実装プロセス

nginx高可用性クラスタの実装プロセス

この記事は主に、nginx 高可用性クラスタの実装プロセスを紹介します。この記事のサンプルコードは非常に詳細で、皆さんの学習や仕事に一定の参考値があります。困っている友人は参考にしてください。

1. 構成:

(1) 2台のnginxサーバーが必要 (2) Keepalivedが必要 (3) 仮想IPが必要

2. 高可用性構成の準備

(1) 2台のサーバーが必要です: 192.168.180.113 と 192.168.180.112 (2) 両方のサーバーに nginx をインストールします (3) 両方のサーバーに keepalived をインストールします

3. 2台のサーバーにkeepalivedをインストールする

(1)yumコマンドを使ってインストールする

(2)インストール後、etc内にkeepalivedというディレクトリが作成され、keepalived.confというファイルが作成されます。

[root@topcheer dev]# yum install keepalived -y
読み込まれたプラグイン: fastestmirror、langpacks
キャッシュされたホストファイルからミラー速度をロードする
 * ベース: mirrors.cn99.com
 * epel: ftp.riken.jp
 * 追加情報: mirrors.cn99.com
 * 更新情報: mirror.lzu.edu.cn
gitlab_gitlab-ce/x86_64/署名 | 836 B 00:00:00
gitlab_gitlab-ce/x86_64/署名 | 1.0 kB 00:00:00 !!!
gitlab_gitlab-ce-source/署名 | 836 B 00:00:00
gitlab_gitlab-ce-source/signature | 951 B 00:00:00 !!!
依存関係を解決しています--> トランザクションを確認しています---> パッケージ keepalived.x86_64.0.1.3.5-16.el7 がインストールされます--> パッケージ keepalived-1.3.5-16.el7.x86_64 に必要な依存関係 libnetsnmpmibs.so.31()(64 ビット) を処理しています--> パッケージ keepalived-1.3.5-16.el7.x86_64 に必要な依存関係 libnetsnmpagent.so.31()(64 ビット) を処理しています--> トランザクションを確認しています---> パッケージ net-snmp-agent-libs.x86_64.1.5.7.2-43.el7 がインストールされます--> 依存関係の解決が完了しました​
依存関係の解決
==========================================================================================================================================
 パッケージ アーキテクチャ バージョン ソース サイズ === ...
インストール中:
 キープアライブド x86_64 1.3.5-16.el7 ベース 331 k
依存関係をインストールします:
 net-snmp-agent-libs x86_64 1:5.7.2-43.el7 ベース 706 k
​
取引概要= ...
1 つのパッケージ(+ 1 つの依存パッケージ)をインストールします
​
合計ダウンロード数: 100万
設置サイズ: 3.0M
パッケージをダウンロードしています:
(1/2): net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm | 706 kB 00:00:00
(2/2): keepalived-1.3.5-16.el7.x86_64.rpm | 331 kB 00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 1.8 MB/秒 | 1.0 MB 00:00:00
トランザクションチェックを実行中
トランザクションテストの実行
トランザクションテストが成功しました
トランザクションの実行
 インストール中: 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 1/2
 インストール中: keepalived-1.3.5-16.el7.x86_64 2/2
 検証中: keepalived-1.3.5-16.el7.x86_64 1/2
 検証中: 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 2/2
​
インストール済み:
 キープアライブド.x86_64 0:1.3.5-16.el7
​
依存関係としてインストール:
 ネットSNMPエージェントライブラリ.x86_64 1:5.7.2-43.el7
​
完了!

4. 設定ファイルを変更する

マスターとスレーブの両方を交換する必要がある

[root@topcheer keepalived]# cat keepalived.conf
グローバル定義 {
  通知メール{
  メールアドレス
  フェイルオーバー@firewall.loc
  [email protected]
  }
  通知メール送信者 [email protected]
  SMTPサーバー 192.168.180.113
  SMTP_接続タイムアウト 30
  ルータID LVS_DEVEL
  }
  vrrp_script chk_http_port {
  スクリプト "/usr/local/src/nginx_check.sh"
  間隔 2 # (検出スクリプトの実行間隔)
  重量2
  }
  vrrp_インスタンス VI_1 {
   state BACKUP # バックアップサーバでMASTERをBACKUPに変更する
   interface ens33 //ネットワークカード virtual_router_id 51 # マスターマシンとバックアップマシンの virtual_router_id は同じである必要があります priority 40 # マスターマシンとバックアップマシンの優先度は異なります。マスターの値は大きく、バックアップの値は小さくなります advert_int 1
  認証
   認証タイプ PASS
   認証パスワード 1111
  }
  仮想IPアドレス{
  192.168.180.114 // VRRP H 仮想アドレス}
}

スクリプト:

[root@topcheer src]# cat nginx_check.sh
#!/bin/bash
A=`ps -C nginx ▒Cヘッダーなし |wc -l`
[ $A -eq 0 ]の場合
  ローカル
  睡眠2
  if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
    キルオールキープアライブ
  フィ
fi[root@topcheer src]#

両方のサーバーでnginxとkeepalivedを起動します

nginx を起動します: ./nginx gitlab 独自の nginx を 112 にインストールしたので、起動する必要はありません。keepalived を起動します: systemctl start keepalived.service

5. テスト

113でnginxとkeepalivedをオフにすると、112に切り替わることがわかります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 高可用性 Web クラスターを実装するための Keepalived+Nginx+Tomcat サンプル コード
  • Nginx は高可用性クラスタ構築を実装します (Keepalived+Haproxy+Nginx)

<<:  Vue で webSocket を使用してリアルタイムの天気を更新する方法

>>:  MySQLデータベースで列を追加、削除、変更する方法

推薦する

HTML フォーム コントロールの無効な属性の読み取り専用と無効の概要

HTML でフォームの送信を無効にする方法は 2 つあります。 1. コントロールタグにreadon...

mysql8.0.11 winx64 手動インストールと設定チュートリアル

まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

海外でダウンロードできる25個の新鮮で便利なアイコンセット

1. Eコマースアイコン2. アイコンスイーツ2 3. 携帯電話アイコンパック4. 旗アイコンセット...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

jQuery の CSS スタイル属性 css() と width() の完全ガイド

目次1. css() の基本的な使用法: 1.1 CSSプロパティを取得する1.2 CSSプロパティ...

HTML テーブルタグチュートリアル (32): セルの水平方向の配置属性 ALIGN

水平方向では、セルの配置を左、中央、右に設定できます。基本的な構文<TD ALIGN=&quo...

Vue2.xは、ユーザーのログインと終了を実装するためにルーティングナビゲーションガードを設定します。

目次序文1. ルーティングナビゲーションガードを設定する1. グローバルナビゲーションガード2. ロ...

この記事では、jsのデータ型とデータ構造の世界を紹介します。

目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...

Promiseの紹介と基本的な使い方の簡単な分析

Promise は、ES6 で導入された非同期プログラミングのための新しいソリューションです。 Pr...

ウェブページのCSSの優先順位について詳しく説明します

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経...

MySQL では SQL ステートメントはどのように実行されますか?

目次1. MySQLアーキテクチャの分析1.1 コネクタ1.2 クエリキャッシュ1.3 アナライザー...

WeChatアプレットは左にスワイプしてリスト項目を削除する効果を実現

この記事では、WeChatミニプログラムの具体的なコードを共有し、左にスワイプしてリスト項目を削除す...

Vueウォッチの監視方法の概要

目次1. Vueにおけるwatchの役割はその名の通り、監視の役割です。 2. このオブジェクトのプ...