HAProxyは、高可用性と負荷分散のための無料のオープンソースソリューションであり、TCPおよびHTTPベースのアプリケーションのプロキシにも使用できます。 HAProxyは、Linux、Solaris、およびFreeBSDにインストールおよび構成できます。 HAProxyは、サーバーの負荷分散と高可用性機能の使用によりサーバーのパフォーマンスと信頼性を向上させるため、トラフィックが多いWebサイトに最適なソリューションです。
HAProxyは、GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitterなど、最も人気のある多くのWebサイトで使用されており、Amazon Web ServicesのOpsWorks製品でも使用されています。このチュートリアルでは、Haproxyをインストールして使用する方法を学習します。 Debian9およびUbuntu16.04サーバー用。まず、Debian9へのHaproxyのインストールから始めます
Debian9へのHAProxyのインストール
現在、Debian 9でサポートされているhaproxyの最新の安定バージョンは1.8ですが、これのみをインストールします。まず、Debian 9でバックポートリポジトリを有効にする必要があります。これを行うには、次のコマンドを使用します。
[[email protected]〜]#echo deb http://httpredir.debian.org/debian Stretch-backports main | tee /etc/apt/sources.list.d/backports.list
完了したら、次のコマンドを使用して専用リポジトリを有効にします。
[[email protected]〜]#curl https://haproxy.debian.net/bernat.debian.org.gpg | apt-key add-[[email protected]〜]#echo deb http://haproxy.debian.net Stretch-backports-1.8 main | tee /etc/apt/sources.list.d/haproxy.list
これで、上記で追加したリポジトリを使用してhaproxyをインストールできます。
[[email protected]〜]#apt-get update [[email protected]〜]#apt-get install haproxy -t Stretch-backports \ *
これにより、Debian 9システムにhaproxyがインストールされます。次に、Ubuntu16.04システムへのインストールについて説明します。
Ubuntu16.04へのHAProxyのインストール
HAProxy 1.8は、Ubuntu16.04の最新バージョンでもあります。 Ubuntuにはインストールに使用できる専用のPPAがあり、次のコマンドを使用してインストールします。
[[email protected]〜] $ sudo apt-get install software-properties-common [[email protected]〜] $ sudo add-apt-repository ppa:vbernat / haproxy-1.8
リポジトリを追加したら、次のコマンドを使用してhaproxy1.8をインストールします。
[[email protected]〜] $ sudo apt-get update [[email protected]〜] $ sudo apt-get install haproxy
これで、haproxyの準備が整いました。このチュートリアルでは、メールサーバーとウェブサーバーからのリクエストの負荷を分散するようにHAProxyを設定します。
メールサーバーとHAProxyの負荷分散
この例では、IPアドレスがそれぞれ192.168.1.10と192.168.1.20の2つのSMTPサーバーを使用します。
haproxyサーバーのIPアドレスは192.168.1.100です。
ここで、メインのHAProxy構成ファイル(「 /etc/haproxy/haproxy.cfg 」)に変更を加えます。 ‘次に、2つのSMTPサーバーの負荷分散のために構成を変更します。
[[email protected]〜] $ sudo vi /etc/haproxy/haproxy.cfgglobal log / dev / log local0 log / dev / log local1notice mode tcp option tcplog option dontlognullfrontend front_smtp bind *:25 mode tcp default_backend back_smtpbackend back_smtp mode tcp balance roundrobin server smtp1 192.168.1.10ここでは、ほとんどのオプションがデフォルトで設定されています。ここで変更する主なものは、「フロントエンド」です。 ‘&‘バックエンド ‘セクション。
フロントエンドfront_smtp
バインド*:25
モードtcp
default_backend back_smtp
ここでは、フロントエンドの名前、つまりfront_smtpを定義し、バインドパラメータを使用してポート25からすべてのリクエストを受け取るように依頼しました。最後に、すべてのリクエストが配信される「back_smtp」という名前のバックエンドセクションについて説明しました。
バックエンドback_smtp
モードtcp
バランスラウンドロビン
サーバーsmtp1192.168.1.10:25チェック
サーバーsmtp2192.168.1.20:25チェック
このセクションでは、バックエンドの名前を設定しました。つまり、送信のback_smtpとモードはtcpであり、使用される負荷分散方法は「ラウンドロビン」です。 ‘。使用できる他の負荷分散方法は、加重ラウンドロビンです。 、動的ラウンドロビンアルゴリズム 、最小接続アルゴリズム 、 ソース。最後に、両方のSMTPサーバーのサーバーアドレスについて説明しました。
変更が加えられたら、ファイルを保存し、haproxyサービスを再起動して変更を実装します。
[[email protected]〜] $ sudo service haproxy restartこれで、Haproxyサーバーがメールサーバーのロードバランサーとして機能する準備が整いました。ここで、SMTPサーバーアドレスを使用するのではなく、HAPROXYのサーバーアドレスを使用する必要があります。つまり、haproxyロードバランシングを機能させるには192.168.1.100:25です。
SMTPサーバーの負荷分散が機能しているかどうかを確認するには、telnetを使用できます。
telnetコマンドの出力は次のようになります。
[[email protected]〜] $ telnet 192.168.1.100 25 192.168.1.100..Connectedto192.168.1.100。エスケープ文字は「^]」です。220smtp1.linuxtechi.comESMTPPostfixここで、もう一度telnetコマンドを実行します。
[[email protected]〜] $ telnet 192.168.1.100 25 192.168.1.100..Connectedto192.168.1.100。エスケープ文字は「^]」です。220smtp2.linuxtechi.comESMTPPostfix両方の出力でメールサーバーのサーバーが変更されていることに注意してください。これは、負荷分散が正常に機能していることを示しています。次に、Webサーバーの負荷分散のハーポキシの例について説明します。
HAProxyを使用したWebサーバーの負荷分散
同じファイルが「/etc/haproxy/haproxy.cfg」で編集されます。バックエンドで2つのWebサーバー(192.168.1.10と192.168.1.20)を使用します。 haproxyサーバーのIPアドレスは192.168.1.100です。
haproxyのメイン設定ファイルを開き、次の変更を加えます。
<前> [[電子メールが保護された]〜] $ sudoのviの/etc/haproxy/haproxy.cfgglobalログは/ dev /ログインLOCAL0ログは/ dev / local1の予告chroot環境の/ var / libに/ haproxyユーザーhaproxyグループhaproxy MAXCONN 1024 daemondefaultsは、グローバルログログmode http option httplog option dontlognullfrontend www-http bind *:80 mode http default_backend apachebackend apache mode http balance roundrobin server web1 192.168.1.10 server web2 192.168.1.2ファイルを保存し、haproxyサービスを再起動して、変更を実装します。
[[email protected]〜] $ sudo service haproxy restart負荷分散が機能しているかどうかをテストするために、両方のサーバーに2つの異なるWebページを配置できます。たとえば、Webサーバー1のindex.htmlを変更できます
[[email protected]〜] $ sudovi/var/www/html/index.htmlこれはWEBサーバー1です&同様に、Webサーバー2では、index.htmlを編集して次のように言うことができます。
[[email protected]〜] $ sudovi/var/www/html/index.htmlこれはWEBサーバー2です加えられた変更を実装するために、Webサービスを再起動することを忘れないでください。
次に、haproxy IPアドレス192.168.1.100を使用し、Webブラウザを使用してアクセスします。
ブラウザを更新するたびに、両方のWebサーバーからのWebページを交互に表示する必要があります。
これは、Webサーバーの負荷分散も正常に機能していることを示しています。これで、Debian9とUbuntu16.04にHAProxyをインストールして使用する方法に関するチュートリアルを終了します。下のコメントボックスを使用して、お気軽に質問や提案を送信してください
Debian 9 /Ubuntu16.04サーバーにForeman1.16をインストールして設定する方法 Debian 9 / Ubuntu 16.04/17.10にWiresharkをインストールして使用する方法Ubuntu