nginx と keepalived を組み合わせて高可用性を実現するための手順を完了する

nginx と keepalived を組み合わせて高可用性を実現するための手順を完了する

序文

システムの高可用性を満たすためには、通常、クラスターを構築する必要があります。ホストがクラッシュしても、当社のシステムは引き続きサービスを提供できます。 nginx をリバース プロキシおよび動的および静的分離サーバーとして使用する場合も同様です。システムの高可用性を実現することが当社のプログラマーの焦点です。この記事では、nginx と keepalived を使用して、マスター/スレーブ モードで高可用性クラスターを構築する方法を紹介します。

前提知識

この記事では nginx の設定についてはあまり詳しく説明せず、読者がすでに nginx についてある程度の知識を持っていることを前提としています。

keepalivedの紹介

Keepalived の機能は、サーバーの状態を検出することです。Web サーバーがダウンしたり、機能しなくなったりすると、Keepalived はそれを検出し、障害のあるサーバーをシステムから削除し、他のサーバーを使用してサーバーを置き換えます。サーバーが正常に機能すると、Keepalived は自動的にサーバー グループに追加します。これらのタスクはすべて、人間の介入なしに自動的に完了します。手動で行う必要があるのは、障害のあるサーバーを修復することだけです。

システムアーキテクチャ図

実装手順

1. 環境設定

1.1 nginxをインストールする

関連する依存関係をインストールする

yum インストール pcre-devel zlib zlib-devel openssl openssl-devel

圧縮パッケージをアップロードして解凍する

tar zxvf nginx-1.12.2.tar.gz

ディレクトリを作成し、構成をテストする

mkdir -p /usr/local/nginx
./configure --prefix=/usr/local/nginx

プリコンパイルとインストール

作成 && インストール

開始および停止関連コマンド

/usr/local/nginx/sbin/ をコピーします。
./nginx
./nginx -s 停止
./nginx -s 開始

1.2 keepalivedをインストールする

yum インストール -y キープアライブ

2. ホスト構成

keepalived設定ファイルを変更する

vim /etc/keepalived/keepalived.conf

変更内容は以下のとおりです

# 新しく追加された設定 vrrp_script chk_http_port {
 スクリプト "/shell/nginx_check.sh" #スクリプト アドレス 間隔 2 #チェック スクリプトの実行間隔 重み 2 #重み}

vrrp_インスタンス VI_1 {
 状態 MASTER #マスターサーバーはMASTER、スレーブサーバーはBACKUP
 interface eth0 #ネットワーク カード virtual_router_id 51 #マスター マシンとバックアップ マシンの virtual_router_id は同じである必要があります priority 100 #マスター マシンとバックアップ マシンの優先度が異なります。マスターの優先度が高く、バックアップの優先度が低くなります。デフォルトは 100 です
 広告_int 1
 認証
  認証タイプ PASS
  認証パスワード 1111
 }
 #仮想IPアドレス virtual_ipaddress {
  192.168.126.88
 }
}

スクリプトファイルを作成する

mkdir /shell/nginx_check.sh
vim /shell/nginx_check.sh

スクリプトファイルの内容は次のとおりです。

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
[ $A -eq 0 ]の場合
  ローカル
  睡眠2
  if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
    キルオールキープアライブ
  フィ
フィ

3. スレーブ構成

keepalived設定ファイルを変更する

vrrp_インスタンス VI_1 {
  状態 BACKUP #マスターサーバーはMASTER、スレーブサーバーはBACKUP
  interface eth0 #ネットワークカード virtual_router_id 51 #マスターマシンとバックアップマシンの virtual_router_id は同じである必要があります priority 50 #マスターマシンとバックアップマシンの優先度が異なり、マスターの優先度が高く、バックアップの値は低くなります advert_int 1
  認証
    認証タイプ PASS
    認証パスワード 1111
  }
  #仮想IPアドレス virtual_ipaddress {
    192.168.126.88
  }
}

4. サービスを開始する

起動する

サービスkeepalived開始

仮想IPアドレスを表示する

IPアドレス
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 不明 
  リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 スコープ ホスト lo
  inet6 ::1/128 スコープホスト 
    valid_lft 永久 preferred_lft 永久
2: eth0: <BROADCAST、MULTICAST、UP、LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  リンク/イーサ 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
  inet 192.168.126.100/24 brd 192.168.126.255 スコープ グローバル eth0
  inet 192.168.126.88/32 スコープ グローバル eth0
  inet6 fe80::20c:29ff:fe4f:31ce/64 スコープ リンク 
    valid_lft 永久 preferred_lft 永久

5. ファイアウォールテストをオフにする

ファイアウォールをオフにする

サービスiptables停止
# 起動時にファイアウォールが自動的に起動するかどうかを確認します chkconfig --list | grep iptables
chkconfig iptables オフ

表示するには仮想IPアドレスにログインしてください

http://192.168.126.88/

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • nginx+keepalived 高可用性マスタースレーブ構成の詳細な説明
  • nginx の高可用性を実現するために keepalived と nginx を組み合わせる方法
  • keepalived+nginx の高可用性を実装する方法の例
  • 高可用性(HA)を実現するKeepalived+Nginxの詳細な説明
  • Keepalivedはnginxの高可用性を実装します
  • 高可用性 Web クラスターを実装するための Keepalived+Nginx+Tomcat サンプル コード

<<:  npmとcnpmを混在させる際の落とし穴の詳細な説明

>>:  MySQL 5.5.56 インストール不要版の設定方法

推薦する

MySQL における制限関数と合計関数の混在使用の問題の詳細な説明

序文今日、注文データを同期した後、同僚は、合計注文金額とデータソースの合計金額に差があったため、LI...

Linuxカーネルの浮動小数点演算のサポートに関する簡単な説明

現在、ほとんどの CPU は浮動小数点ユニット (FPU) をサポートしています。FPU は、プロセ...

React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

説明する: Tabs コンポーネントが切り替わると、TabPane に含まれる同じサブコンポーネント...

Chrome タブバーを実装するための CSS のヒント

今回は、Google Chrome のタブバーのような、特殊な丸い角を持つナビゲーション バーのレイ...

docker ベースの redis-sentinel クラスターの構築例

1. 概要Redis Cluster は、Redis ノードのグループ間での高可用性とシャーディング...

HTML2 キャンバス SVG が認識されない場合の解決策

ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...

jsはショッピングカートの加算と減算、価格計算を実装します

この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...

Win10 64ビットMySQL8.0のダウンロードとインストールのチュートリアル図

公式サイトから MySQL をダウンロードしてインストールし、クライアントにログインするにはどうすれ...

CSS 8 目を引く HOVER 効果のサンプル コード

1. エフェクトHTMLを送信する <div id="送信ボタン">...

HTML テーブル マークアップ チュートリアル (10): セル パディング属性 CELLPADDING

セルのパディングは、セルの内容と境界線の間の距離です。基本的な構文<TABLE セルパディング...

JavaScript 配列メソッドの詳細な例

目次導入配列の作成作成方法詳しい説明方法参加する() push() と pop() shift() ...

Linux 上での MySQL データベースのリモート展開の詳細な手順

LinuxリモートMySQLデータベースの展開、参考までに、具体的な内容は次のとおりです。 1.0 ...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....