GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでHAProxy、Nginx、Keepalivedを使用して負荷分散を設定する

サーバーまたはWebサイトをホストする従来の方法では、サーバーは単一のHTTPサーバーを介してホストされます。クライアントがサーバーにヒットすると、サーバーで許可されます。しかし、複数のユーザーがいるとどうなりますか。何千ものクライアントが、一度にサイトにアクセスしてクエリを実行しますか?サーバーがクラッシュした場合はどうなりますか?単一のサーバーはどのように負荷を分散しますか?これらすべての質問に答えるために、「負荷分散」という用語を使用できます。サーバーのトラフィックを管理するための本格的なツールを探している場合は、負荷分散のためにLinuxでHAProxy、Nginx、Keepalivedを確実にセットアップできます。

HAProxy、Nginx、Keepalivedの基礎

Nginxは、負荷分散とプロキシサービスでよく知られています。ロードバランサーサーバーでは、クライアントはサーバーに直接接続するのではなく、ロードバランサーを介してサーバーに接続します。 Nginx、HAProxy、およびKeepalivedの使用は、Linuxでの負荷分散に問題なく機能します。サーバーがクラッシュすると、ロードバランサーはクライアントをオンラインの別のサーバーに接続します。

HAProxyは、HTTPWebサーバーとTCPWebサーバーの両方に対応した無料のオープンソースの負荷分散ツールです。これはCプログラミング言語で書かれており、GNUパブリックライセンスの下でライセンスされています。 Linuxでの負荷分散のために、非常に完成度が高く、セットアップが簡単です。 HAProxyという用語は、高可用性プロキシツールの略です。 HAProxyツールをデプロイして、サーバーのパフォーマンス、可用性、および負荷分散を改善できます。

キープアライブツールは、2つのサーバー間の仲介役として機能し、いずれかのサーバーがダウンしたときに、クライアントを1つのサーバーから別のサーバーにリダイレクトできます。キープアライブは、仮想ルーター冗長プロトコルで機能し、負荷分散とサーバー障害の問題の軽減を実現します。 HAProxyの使用は、負荷分散とサーバーの常時稼働に適しています。

したがって、HAProxyが常に存続するという保証はありません。 HAProxyをバックアップするためのKeepalivedが登場します。クライアントの要求をリモートに配置されたサーバーに分散し、レイヤー4、レイヤー7(トランスポートおよびアプリケーションレイヤー)の負荷分散を処理できます。さらに、HAProxyは、アクセス制御リスト、バックエンド、およびフロントエンドの用語を処理できます。

LinuxでのHAProxy、Nginx、Keepalivedによる負荷分散

Linux用のHAproxy、Nginx、Keepalivedツールについてはすでに多くのことを話し合ったので、チュートリアルに飛び込みましょう。この投稿では、LinuxでHAProxy、Nginx、Keepalivedを使用して負荷分散を設定する方法を説明します。この投稿を行うには、サーバーレベルの基本的な知識とLinuxを使用するための基本的な能力が必要です。

ステップ1:負荷分散のためにLinuxにNginxをインストールする

サーバーをより強力にし、負荷分散し、クライアント処理を強化する方法を説明するので、NginxHTTPWebサーバーをインストールすることがプロセスを開始する最初のステップになります。 Nginx Webサーバーのインストールは簡単で簡単です。次のコマンドを使用して、LinuxマシンにNginxWebサーバーをインストールできます。

  • Ubuntu /DebianLinuxにNginxWebサーバーをインストールします
sudo apt update
sudo apt install nginx
---

  • 次のコマンドを実行して、Fedora / RedHatLinuxにNginxをインストールします
yum -y install nginx

Nginxサーバーをインストールした後、マシンでサーバーを構成、アクティブ化、および起動します。 LinuxでNginxサーバーを使い始める方法については、この投稿をご覧ください。

ステップ2:LinuxにHAproxyロードバランサーをインストールする

LinuxマシンにNginxサーバーをインストールして構成すると、マシンまたはネットワーク上のサーバーとして正常に機能する場合があります。ただし、ここでは負荷分散サーバーを作成しようとしているため、システムにHAproxyツールをインストールして構成します。

1。負荷分散のためにUbuntuにHAproxyをインストールして構成する

システムにHAProxyをインストールする前に、HAProxyサービスがすでにシステムに存在するかどうかを確認することをお勧めします。

sudo apt show haproxy

次に、PPAパッケージを介してHAProxyリポジトリをシステムに追加します。 PPAがリポジトリをプルアップしたら、システムリポジトリを更新します。

sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update

最後に、Ubuntu / Debian Linuxシステムで次のコマンドを実行して、システムでHAProxyを取得してください。 HAProxyをインストールした後、HAProxyのバージョンをチェックして、マシンに正しくインストールされていることを確認してください。

sudo apt install -y haproxy
haproxy -v

LinuxマシンにHAProxyのインストールが完了したら、サーバーでHAProxyをセットアップするための構成スクリプトを編集します。ここでは、いくつかのHAProxy構成スクリプトを編集します。これらのスクリプトを編集し、これらのファイルのバックアップを作成して、問題が発生した場合にデフォルトの設定を復元するように注意してください。

まず、rootアクセス権を持つターミナルシェルで次のコマンドを実行して、HAProxy構成スクリプトを編集します。ここでは、Nanoスクリプトエディタツールを使用しています。お気に入りのツールを使用できます。

sudo nano /etc/haproxy/haproxy.cfg

次に、次のスクリプト行をコピーしてファイル内に貼り付け、ファイルを保存して閉じます。次のスクリプト行は、HAProxyを使用してフロントエンドとバックエンドのステータスを定義します。サーバー名、IP、およびその他の資格情報フィールドにサーバーの詳細を入力してください。

frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

次に、ターミナルシェルで次のコマンドを実行して、HAproxyスクリプトを編集および構成します。

sudo nano /etc/haproxy/haproxy.cfg

次の構成スクリプトを使用して、HAproxy設定をセットアップしてください。

frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

backend blog_back
server :80 check

設定が完了したら、rootアクセスで次のシステム制御コマンドを実行して、LinuxマシンでHAProxyツールを再起動できます。

sudo systemctl status haproxy
sudo systemctl restart haproxy

これで、サーバーのアドレスを指定して以下のコマンドを実行し、サーバーのステータスを確認できます。

http:///haproxy?stats

2。 FedoraにHAproxyをインストールして設定する

HAProxy負荷分散ツールをFedoraLinuxにインストールすることは、Debian/Ubuntuシステムにインストールすることと同じようなものです。まず、システムリポジトリを更新してから、DNFコマンドを実行して、LinuxマシンにHAProxyツールをインストールします。

yum -y update
yum -y install haproxy

インストールが完了したら、次のコマンドを実行して、変更を加える前に構成スクリプトのバックアップを作成します。

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg_bac

以下に示す次のtouchコマンドを実行して、新しいHAProxy構成スクリプトを作成できます。次に、次のNanoコマンドを使用してスクリプトを編集します。

touch haproxy.cfg
nano haproxy.cfg

次の構成スクリプトをコピーして貼り付け、ファイルを保存して終了できます。

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

#frontend
#---------------------------------
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

#round robin balancing backend http
#-----------------------------------
backend http_back
balance roundrobin
#balance leastconn
mode http
server webserver1 10.13.211.169:80 check # ip_address_of_1st_centos_webserver
server webserver2 10.13.211.158:80 check # ip_address_of_2nd_centos_webserver

スクリプトを構成ファイルに追加したら、Fedora LinuxでHAProxyツールを有効にし、起動して、ステータスを確認します。

systemctl enable haproxy
systemctl start haproxy
systemctl status haproxy

WebブラウザからHAProxyステータスを取得することで、HAProxyがシステムで正常に機能しているかどうかを確認することもできます。

http://10.13.211.194/haproxy?stats

次のcURLコマンドも、HAProxyステータスとともに詳細なサーバーステータスを返します。

curl 10.13.211.194
curl 10.13.211.194

ステップ3:LinuxにKeepalivedをインストールする

キープアライブについてはすでに説明したので、ここではLinuxシステムへのキープアライブのインストールプロセスを直接実行します。ここでは、FedoraおよびDebianLinuxにKeepalivedツールをインストールして構成する方法を説明します。

1。 Ubuntu/DebianにKeepalivedをインストールして設定する

Ubuntuおよびその他のDebianLinuxシステムにKeepalived負荷分散ツールをインストールするには、次のコマンドを実行して、システムにビルドエッセンシャルツールを取得してください。次に、ホームディレクトリを参照し、以下に示すwgetコマンドを実行して、圧縮されたキープアライブファイルをファイルシステムにダウンロードします。

sudo apt-get install build-essential libssl-dev
cd ~
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

ダウンロードが完了したら、次のtarコマンドを使用してファイルを抽出し、抽出したディレクトリをCDコマンドで参照してください。

tar xzvf keepalived*
cd keepalived*

これで、次のコマンドを実行して、UbuntuシステムにKeepalivedツールをインストールできます。

./configure
make
sudo make install

インストールが終了したら、サーバーでキープアライブを設定するための構成を編集します。以下のコマンドを実行して、構成スクリプトを編集してください。

sudo nano /etc/init/keepalived.conf

スクリプトが開いたら、以下のスクリプトをコピーして貼り付けます。

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

次に、mkdirを実行します キープアライブツールの新しい構成スクリプトを作成し、構成スクリプトを入力するコマンド。

sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf

キープアライブ構成ファイルに入力するには、次のスクリプト行を使用します。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
secondary_private_IP
}


}

次に、etcからKeepalived構成スクリプトを編集します ディレクトリを作成し、次の行をスクリプトに追加します。

sudo nano /etc/keepalived/keepalived.conf

構成ファイルに入れる必要のあるスクリプト行。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

キープアライブのスクリプトを構成した後、セカンダリロードバランサー構成スクリプトを作成し、必要なスクリプト行をスクリプトに入力します。

sudo nano /etc/keepalived/keepalived.conf

nanoコマンドを実行してスクリプトを編集し、スクリプトに以下の行を入力します。ファイルが更新されたら、スクリプトを保存して閉じます。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

2。 FedoraにKeepalivedをインストールして設定する

キープアライブツールをFedoraおよびRedHatLinuxシステムにインストールすることは、Debianディストリビューションにインストールすることと非常によく似ています。まず、システムリポジトリを更新してから、次のyumコマンドを実行してKeepalivedツールをインストールする必要があります。

yum update
yum install -y keepalived

インストールが終了したら、Keepalivedを使用してサーバー設定を調整するためのKeepalived構成スクリプトを編集します。変更を加える前に、Keepalived構成スクリプトのバックアップを作成します。

シェルで次のコマンドを1つずつ実行して、バックアップファイルを作成し、構成ファイルを作成して、構成スクリプトを編集します。ツールを構成したら、それを使用してLinuxで負荷分散サーバーをセットアップします。

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

構成スクリプトが開いたら、以下に示すスクリプト行をファイルに入力してください。サーバーのIP、ポート、名前、その他の詳細に応じて、スクリプトファイルに変更を加える必要がある場合があります。

global_defs {
notification_email {
www.ubuntupit.com
[email protected]
}
notification_email_from [email protected]
smtp_server 10.13.211.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0 #put your interface name here. [to see interface name: $ ip a ]
virtual_router_id 51
priority 101 # 101 for master. 100 for backup. [priority of master> priority of backup]
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #password
}
virtual_ipaddress {
10.13.211.10 # use the virtual ip address.
}
}

キープアライブスクリプトを構成した後、ターミナルシェルでルートアクセスを使用して次のシステム制御コマンドを実行し、Linuxマシンでキープアライブのステータスを開始、有効化、および確認してください。

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

すべてが正常に行われると、次のコマンドはすべてのIPロケーションのサーバーステータスを返し、Linuxサーバーが高可用性を備えた負荷分散のための完全なセットアップを確実に行えるようにします。

$ while true; do ; curl 10.13.211.10 ; sleep 1; done;

最後の言葉

システム管理者であれば、サーバーを常に稼働させ、世界中のクライアントからアクセスできるようにすることがいかに重要かをご存知でしょう。ほとんどの場合、サーバーがビジー状態の場合は、負荷分散メカニズムを有効にすることをお勧めします。

これにより、サーバーを高速化し、一度に大量のヒットでアクセスできるようになります。投稿全体で、HAProxy、Keepalived、およびNginxの基本について説明しました。 Linuxで負荷分散を行うためにHAProxy、Nginx、Keepalivedを設定する方法の概念と方法を説明しました。

この投稿が有用で有益であると思われる場合は、お友達やLinuxコミュニティと共有してください。この投稿に関する意見をコメントセクションに書き留めることもできます。


Linux
  1. Rocky Linux / Centos 8にNginx、WordPress、Mysql8をインストールしてセットアップする方法

  2. LinuxサーバーにcPanelをインストールしてセットアップする方法

  3. ubuntuサーバーでnginxとpm2を使用して単純なnodejsアプリをセットアップする方法

  1. Kalihttpサーバーのセットアップ

  2. PrometheusとGrafanaでLinuxサーバーを監視する

  3. Nginx 負荷分散

  1. LinuxでNGINXWebサーバーを強化および保護する方法

  2. LinuxでKeepAlivedを使用して高可用性NGINXをセットアップする方法

  3. LinuxおよびWindowsデスクトップのバックアップサーバーとしてRaspberryPiをセットアップする方法