序文 システムの高可用性を満たすためには、通常、クラスターを構築する必要があります。ホストがクラッシュしても、当社のシステムは引き続きサービスを提供できます。 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 をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: npmとcnpmを混在させる際の落とし穴の詳細な説明
>>: MySQL 5.5.56 インストール不要版の設定方法
準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...
目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...
インストール環境: CentOS7 64ビットMINI版公式ソースコードのコンパイルおよびインストー...
プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...
Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...
CSS は、スタイル、レイアウト、プレゼンテーションの領域です。色彩、サイズ、アニメーションが溢れて...
ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...
Linux topコマンドの紹介top コマンドは、Linux でよく使用されるパフォーマンス分析ツ...
ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...
序文現在、私の会社で使用しているオペレーティングシステムはすべて CentOS7.4 で、アプリケー...
目次1. ジョブ実行のフォールトトレランス1.1 タスクフェイルオーバー戦略1.2 ジョブ再開戦略2...
FastDFSとNginxの統合:トラッカーは、負荷分散と高可用性のために Nginx と組み合わせ...
この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...
目次序文1. 準備 - サーバーとnginxの使用1. サーバーを準備する2. nginxをインスト...
ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...