ホームページ 運用・保守 Linuxの運用と保守 Linux を使用してネットワーク負荷分散を行う方法

Linux を使用してネットワーク負荷分散を行う方法

Jun 18, 2023 pm 06:45 PM
Linuxの負荷分散 ネットワーク負荷分散構成 ipvs ロードバランシング

ネットワーク負荷分散は、ネットワーク トラフィックをさまざまなサーバーに均等に分散する方法であり、それによってシステム全体の可用性とパフォーマンスが向上します。 Linux システムには、ネットワーク負荷分散の実現に役立つツールがいくつか付属しています。この記事では、Linux を使用してネットワーク負荷分散を行う方法を紹介します。

1. Linux ネットワーク負荷分散の基本原理

ネットワーク負荷分散の基本原理は、ネットワーク トラフィックを複数のサーバーに分散することです。分散方式には、ポーリング方式、重み付けポーリング方式、IP ハッシュ方式、最小接続数方式などがあります。

Linux では、ネットワーク トラフィックを複数のサーバーに分散する LVS (Linux Virtual Server) テクノロジーをネットワーク負荷分散に使用できます。これは、スケジューラ (ロード バランサとも呼ばれます) と複数のバックエンド サーバーで構成されます。

2. LVS のインストールと設定

  1. LVS のインストール

LVS を設定する前に、ipvsadm、keepalived、これらのパッケージは、yum コマンドを通じてインストールできます。

① ipvsadm のインストール

次のコマンドを使用して ipvsadm パッケージをインストールします。

sudo yum install ipvsadm -y

② keepalived のインストール

次のコマンドを使用して keepalived パッケージをインストールします:

sudo yum install keepalived -y

  1. LVS の構成

LVS 構成に進む前に、知っておくべきことがいくつかあります。 基本概念:

  • スケジューラー (ロード バランサー): クライアントからネットワーク リクエストを受信し、そのリクエストをバックエンド サーバーに転送するために使用されます。
  • リスニング IP アドレス: クライアントがアクセスする IP アドレス。
  • 実サーバー (バックエンド サーバー): クライアントのネットワーク要求を処理します。

以下は、スケジューラーの IP アドレスが 192.168.1.1、バックエンド サーバーの IP アドレスが 192.168.1.2 および 192.168.1.3 であると仮定した、LVS の構成例です。

① スケジューラーの構成

まず、スケジューラーに keepalived サービスをインストールして構成します。 /etc/keepalived/keepalived.conf ファイルを編集し、次の設定を追加します:

! keepalived の設定ファイル

#global_defs {

router_id LB_Test
}

vrrp_script chk_http_port {

スクリプト "/etc/keepalived/check.sh"
間隔 2
}

vrrp_instance VI_1 {

状態 MASTER
インターフェイス eth0
virtual_router_id 50
優先度 101
認証 {

   auth_type PASS
   auth_pass 1111
ログイン後にコピー

}

virtual_ipaddress {

   192.168.1.100
ログイン後にコピー

}

track_script {

   chk_http_port
ログイン後にコピー

}

}

このうち、vrrp_instance は仮想ルーターのパラメータの設定に使用され、virtual_router_id は仮想ルーターの ID の設定に使用され、virtual_ipaddress は仮想 IP アドレスの設定に使用され、priority はマスターの設定に使用されます。 -バックアップ関係 数値が小さいほど優先度が高くなります。

次に、check.sh という名前のスクリプト ファイルを作成して、バックエンド サーバーが稼働しているかどうかを確認します。次のスクリプトの内容を check.sh ファイルに保存します:

!/bin/bash

A=

ipvsadm -ln | grep -c "Server" if [ $A -eq 0 ];then
echo "failed"
killall keepalived
fi

説明: バックエンド サーバーが利用できない場合、スクリプトは keepalived サービスを終了します。

次のコマンドを実行して、設定ファイルを有効にします。

sudo systemctl restart keepalived

この時点で、スケジューラの設定は完了です。

② バックエンドサーバーの設定

バックエンドサーバーにLVSの実サーバーを設定します。

次のコマンドを使用して実サーバー構成を追加します:

sudo ipvsadm -A -t 192.168.1.100:80 -s rr

その中で、-A オプションはルールの追加に使用され、-t はリスニング IP アドレスとポートの設定に使用され、-s はスケジュール ルールの設定に使用され、ここではポーリング方式が使用されます。

次のコマンドを使用して実サーバーをルールに追加します:

sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2 -g

sudo ipvsadm -a -t 192.168 .1.100:80 -r 192.168.1.3 -g

このうち、-a オプションはルールにリアル サーバーを追加するために使用され、-r はバックエンド サーバーの IP アドレスを設定するために使用され、- g は、バックエンド サーバーのゲートウェイ モードを設定するために使用されます。

この時点で、LVS の構成は完了です。

3. ネットワーク負荷分散のテスト

LVS の設定が完了したら、次の手順でネットワーク負荷分散機能をテストできます。 clientcurl コマンドは仮想 IP アドレスにアクセスします:

    curl 192.168.1.100
スケジューラによる処理後、リクエストはバックエンド サーバーの 1 つに送信されます。 。

バックエンド サーバーの 1 つで単純な HTTP サービスを開始します:
  1. python -m SimpleHTTPServer 80
次に、実サーバーの IP アドレスにアクセスします。 :

    curl 192.168.1.2
仮想 IP アドレスにリクエストを再度送信します。このとき、リクエストは別の実サーバーに送信される必要があります。

    上記のテストの後、バックエンド サーバーにアクセスするときに、リクエストをさまざまなバックエンド サーバーに均等に分散できれば、ネットワークの負荷分散は成功していると言えます。
  1. 4.概要

この記事では、Linux を使用してネットワーク負荷分散を行う方法を紹介します。ipvsadm および keepalived ソフトウェア パッケージをインストールし、IP アドレス、ポート、スケジューラとバックエンド サーバーのスケジュール ルールを構成し、最後にネットワーク負荷分散機能をテストします。 。ネットワーク負荷分散により、システム全体の可用性とパフォーマンスが向上し、同時実行性の高い環境でのネットワーク リクエストの処理が容易になり、ユーザー エクスペリエンスが向上します。

以上がLinux を使用してネットワーク負荷分散を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:25 PM

この記事では、パターンマッチング、ファイル検索、テキスト操作、グレップ、SED、awkなどのツールの詳細、ファイル検索、テキスト操作のためにLinuxで正規表現(Regex)を使用する方法について説明します。

TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? Mar 17, 2025 pm 05:28 PM

この記事では、Linuxシステムのパフォーマンスを監視するためにTop、HTOP、およびVMSTATを使用して、効果的なシステム管理のための独自の機能とカスタマイズオプションを詳述することについて説明します。

LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? Mar 17, 2025 pm 05:31 PM

この記事では、Google Authenticatorを使用してLinux上のSSH用の2要素認証(2FA)のセットアップ、インストール、構成、およびトラブルシューティング手順の詳細に関するガイドを提供します。 Enhanced Secなど、2FAのセキュリティ利益を強調しています

sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? Mar 17, 2025 pm 05:32 PM

この記事では、LinuxのSudo特権を管理する方法について説明します。重要な焦点は、 /etc /sudoersの安全性とアクセスを制限することです。

パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? Mar 17, 2025 pm 05:26 PM

記事では、APT、Yum、およびDNFを使用してLinuxでソフトウェアパッケージの管理を行い、インストール、更新、および削除をカバーしています。さまざまな分布に対する機能と適合性を比較します。

Linux Distributionを構築およびカスタマイズするにはどうすればよいですか? Linux Distributionを構築およびカスタマイズするにはどうすればよいですか? Mar 14, 2025 pm 04:45 PM

この記事では、Linuxディストリビューションの構築とカスタマイズのプロセス、ベースシステムの選択、LFSやDebianベースのシステムなどのビルドツール、パッケージのカスタマイズ、カーネルの変更について詳しく説明しています。また、Softwarの管理についても議論しています

Linux(静的IP、DHCP、DNS)でネットワークを構成するにはどうすればよいですか? Linux(静的IP、DHCP、DNS)でネットワークを構成するにはどうすればよいですか? Mar 14, 2025 pm 04:55 PM

この記事では、静的IP、DHCP、およびDNS構成のセットアップに焦点を当てたLinuxネットワークの構成に関するガイドを提供します。構成ファイルを編集し、ネットワークサービスを再起動して変更を適用するための手順を詳述します。

最も人気のあるLinux分布(Ubuntu、Debian、Fedora、Centos)は何ですか? 最も人気のあるLinux分布(Ubuntu、Debian、Fedora、Centos)は何ですか? Mar 14, 2025 pm 04:50 PM

この記事では、人気のあるLinuxディストリビューションについて説明します:Ubuntu、Debian、Fedora、およびCentosは、異なるユーザーへのユニークな機能と適合性に焦点を当てています。 UbuntuとDebianのリリースサイクル、ソフトウェアの可用性、サポート、およびHighを比較してください

See all articles