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 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

Vueでブラウザ共有機能を呼び出す方法

序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...

HTMLのタグと要素の違いの詳細な説明

ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...

MySQLのSQLモードの特徴のまとめ

序文SQL モードは、MySQL がサポートする SQL 構文と、実行されるデータ検証チェックに影響...

Web2.0製品と機能の簡単な紹介

<br />Web2.0とは何ですか? Web2.0にはソーシャルネットワーク製品とその...

mysql 5.6.21 のインストールと設定の詳細な手順

1. 概要MySQL バージョン: 5.6.21ダウンロードアドレス: https://dev.my...

Vue3は画像拡大鏡効果を実現します

この記事の例では、画像拡大鏡効果を実現するためのVue3の具体的なコードを参考までに共有しています。...

GolangでMySQLデータベースのバックアップを実装する方法

背景Navicat は、最高の MySQL 視覚化ツールです。ただし、ビューのインポートとエクスポー...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

Docker5フル機能の港湾倉庫構築プロセス

Harbor は、Docker イメージを保存および配布するためのエンタープライズ レベルのレジスト...

IE8は優れたエクスペリエンスを提供します: アクティビティ

今日は IE8 ベータ 1 (以下、IE8 と略します) をチラ見しました。IE8 は素晴らしい体験...