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データベースで列を追加、削除、変更する方法

推薦する

vite2.0 設定学習の詳しい説明(typescript 版)

導入悠宇希の原文です。 vite は Vue CLI に似ています。vite も、基本的なプロジェク...

JavaScript イベント委任の原則

目次1. イベント委任とは何ですか? 2. イベント委任の原則3. イベント委託の役割1. イベント...

Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法

少し前にSQLの独学を終え、MySQL 8.0.17をダウンロードしました。インストールして設定した...

Win10 への MySQL 5.7 のインストール MSI 版のチュートリアル(画像とテキスト付き)

主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...

Vueプロジェクトでのトークン検証ログイン(フロントエンド部分)

この記事の例では、Vueプロジェクトでのトークン検証ログインの具体的なコードを参考までに共有していま...

IE8対応のボーダー半径処理方法

canisue (http://caniuse.com/#search=border-radius)...

Unicode の一般的な文字の概要

初期のコンピューターのほとんどは ASCII 文字しか使用できませんでしたが、その後、主要な西洋のア...

div ボックス モデルの使用経験の概要

ボックスモデルの計算<br />マージン + ボーダー + パディング + コンテンツC...

CSS で中空効果を実装するサンプルコード

効果原理主にCSSグラデーションを使用して、切り取りを必要としない背景のくり抜きを実現します。クーポ...

Vue コードの読みやすさに関するいくつかの提案

目次1. コンポーネントをうまく活用してコードを整理する1. UIコンポーネントを抽出する2. モジ...

Vue でデータコレクターを設計する

目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...

Windows に Docker をインストールする詳細なチュートリアル

ローカルの MySQL バージョンが比較的低いため、最近 MySQL のバージョンをアップグレードす...

テーブル設定の背景画像が100%表示されない解決策

開発中に以下の状況が発見されました。 (1) ファイルが.jspファイル拡張子で保存されている場合、...

IE6のバグと修正は予防戦略です

元記事:究極の IE6 チートシート: 25 以上の Internet Explorer 6 のバグ...