検索
ホームページ運用・保守NginxNginx の高可用性を実現する方法

準備:###### 192.168.16.128

192.168.16.129

2 つの仮想マシン。 Nginx

をインストールする Nginx

をインストールする yum ソース ファイルを更新します:

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

Nginx をインストールします:

yum -y nginx

をインストールします 操作コマンド:

systemctl start nginx; #Start Nginx

systemctl stop nginx; #Stop Nginx

高可用性とは何ですか?

高可用性 HA (High Availability) は、分散システム アーキテクチャの設計において考慮する必要がある要素の 1 つであり、通常、システムがサービスを提供できない時間を設計によって削減することを指します。システムが常にサービスを提供できる場合、可用性は 100% ですが、予期しない状況が発生することがあります。したがって、サービスの障害を可能な限り減らすように努めることしかできません。

問題は解決しましたか?

実稼働環境では、Nginx は外部サービスを提供するリバース プロキシとしてよく使用されますが、Nginx はいつかサーバーのダウンタイムなどの障害に遭遇することは避けられません。 Nginx がダウンすると、外部から提供されたすべてのインターフェイスにアクセスできなくなります。

サーバーが 100% 利用可能であることを保証することはできませんが、この悲劇を回避する方法を見つける必要があります。今日、私たちは keepalived を使用して Nginx

を実装します。 高可用性。

デュアルマシンホットバックアップソリューション

このソリューションは、国内企業で最も一般的な高可用性ソリューションです。デュアルサーバーホットバックアップとは、実際には、1台のサーバーがサービスを提供しており、もう1台のサーバーが特定のサービスをスタンバイ状態にしていることを意味します。1台のサーバーが利用できない場合、もう1台のサーバーがバックアップを実行します。彼の場所。

キープアライブとは何ですか?

Keepalived ソフトウェアは、もともと LVS クラスタ システム内の各サービス ノードのステータスを管理および監視するための LVS ロード バランシング ソフトウェアとして設計されましたが、その後、高可用性を実現するために VRRP (Virtual Router Redundancy Protocol) 機能が追加されました。したがって、Keepalived は、LVS ソフトウェアの管理に加えて、他のサービス (Nginx、Haproxy、MySQL など) の高可用性ソリューション ソフトウェアとしても使用できます。

フェイルオーバーメカニズム

Keepalived 高可用性サービス間のフェールオーバー転送は、VRRP を通じて実装されます。

Keepalived サービスが正常に動作している場合、プライマリ マスター ノードは継続的に (マルチキャスト) ハートビート メッセージをバックアップ ノードに送信し、バックアップ バックアップ ノードに自分がまだ生きていることを伝えます。プライマリ マスター ノードに障害が発生すると、ハートビート メッセージを送信できなくなり、バックアップ ノードはハートビート メッセージを送信できなくなるため、ノードはメイン マスター ノードからのハートビートを検出できなくなり、独自の引き継ぎプログラムを呼び出して、メイン マスター ノードの IP リソースとサービスを引き継ぎます。マスター ノードが回復すると、バックアップ ノードは、マスター ノードの障害時に引き継いだ IP リソースとサービスを解放し、元のバックアップの役割に戻ります。

実装プロセス

キープアライブをインストールする

# yum メソッドを使用して直接インストールでき、依存関係が自動的にインストールされます:

yum -y インストール keepalived

ホスト (192.168.16.128) キープアライブ設定ファイルを変更します。

yum を使用してインストールすると、/etc/keepalived に構成ファイルが生成されます:

vi keepalived.conf

keepalived.conf:

#検出スクリプト

vrrp_script chk_http_port {

スクリプト "/usr/local/src/check_nginx_pid.sh" #nginx が開始されているかどうかを検出するハートビート実行スクリプト

インターバル 2 インターバル 2 体重 2 #weight

}

#vrrp インスタンス定義セクション

vrrp_instance VI_1 {

state MASTER # keepalived の役割を指定します。MASTER がメイン、BACKUP がバックアップです

Interface ens33 # VRRP 通信用の現在のネットワーク インターフェイス カード (現在の centos ネットワーク カード) ifconfig を使用して特定のネットワーク カードを確認します

Virtual_router_id 66 # 仮想ルート番号、マスターおよびスレーブは常に

である必要があります 優先度 100 # 優先度。値が大きいほど、リクエストの処理の優先度が高くなります。

advert_int 1 # チェック間隔、デフォルトは 1 秒 (vrrp マルチキャスト サイクル秒)

#許可されたアクセス

認証 {

auth_type PASS #検証タイプとパスワードを設定します。MASTER と BACKUP は通常の通信に同じパスワードを使用する必要があります

認証パス 1111

}

トラックスクリプト {

chk_http_port #(通話検出スクリプト)

}

virtual_ipaddress {

192.168.16.130 192.168.16.130 # 仮想 IP (VIP) を定義します。1 行に 1 つずつ複数設定できます

}

}

VIP は virtual_ipaddress で構成でき、VIP を通じてサービスにオンラインでアクセスできます。

インターフェースはサーバーのネットワークカードに応じて設定する必要があります。通常の表示方法は ip addr

です。 認証構成 バックアップ マシンへの認可アクセスにも同じ構成が必要です

バックアップ マシン (192.168.16.129) のキープアライブ構成ファイルを変更します。

keepalived.conf:

#検出スクリプト

vrrp_script chk_http_port {

スクリプト "/usr/local/src/check_nginx_pid.sh" #nginx が開始されているかどうかを検出するハートビート実行スクリプト

インターバル2 体重 2 #weight

}

#vrrp インスタンス定義セクション

vrrp_instance VI_1 {

State Backup#Keepalived、主にマスター、予備としてのバックアップの役割を指定します

interface ens33 # vrrp 通信用の現在のネットワーク インターフェイス カード (現在の centos ネットワーク カード) ifconfig を使用して特定のネットワーク カードを確認します

virtual_router_id 66 # 仮想ルート番号、マスターとスレーブは常に

である必要があります 優先99 Advert_int 1#間隔を確認します。デフォルトは 1 秒 (VRRP ブロードキャスト サイクル秒)

#許可されたアクセス

認証 {

auth_type PASS #検証タイプとパスワードを設定します。MASTER と BACKUP は通常の通信に同じパスワードを使用する必要があります

認証パス 1111

}

トラックスクリプト {

chk_http_port #(通話検出スクリプト)

}

virtual_ipaddress {

192.168.16.130 192.168.16.130 # 仮想 IP (VIP) を定義します。1 行に 1 つずつ複数設定できます

}

}

検出スクリプト:

#!/bin/bash

#nginxが起動しているかどうかを検出

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ];then #nginx が起動していない場合は、nginx を起動します systemctl start nginx #Restart nginx

If [ `ps -C nginx --no-header |wc -l` -eq 0 ];then # nginx の再起動に失敗した場合は、keepalived サービスを停止し、VIP 転送を実行します

Killall キープアライブ

fi

fi

スクリプト認可: chmod 775 check_nginx_pid.sh

注: スクリプトは承認されている必要があります。承認されていない場合は、アクセス権限がありません。ここでは、VIP (virtual_ipaddress:192.168.16.130) という 2 つのサーバーを実行します。運用環境では、VIP を介してサービスに直接アクセスします。

nginx の失敗をシミュレートする:

違いとして、2 つのサーバーがデフォルトでアクセスする Nginx html ページを変更します。

まず 192.168.16.130 にアクセスし、VIP 経由でアクセスすると、ページには 192.168.16.128 が表示され、サービスが現在メイン サーバーによって提供されていることを示します。

この時点で、192.168.16.128 メイン サーバーはコマンド

を実行します。 systemctl stop nginx; #stop nginx

vip (192.168.16.130) に再度アクセスすると、ページにまだ 192.168.16.128 が表示されていることがわかります。これはスクリプトの自動再起動です。

ここで 192.168.16.128 サーバーを直接閉じ、ここで VIP (192.168.16.130) にアクセスすると、ページに 192.168.16.129 が表示されることがわかります。この時点で、keepalived は自動的にフェイルオーバーし、エンタープライズ レベルの実稼働環境向けの高可用性ソリューションになります。設立された。

以上がNginx の高可用性を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率Apr 19, 2025 am 12:05 AM

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

究極の対決:Nginx vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxユニット:さまざまなプログラミング言語をサポートしますNginxユニット:さまざまなプログラミング言語をサポートしますApr 16, 2025 am 12:15 AM

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。