Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> Apacheロードバランシング設定方法:mod

Apacheロードバランシング設定方法:mod

  

一般的に言えば、ロードバランシングはクライアントの要求をバックエンドの各実サーバに分散してロードバランシングを達成することです。もう1つの方法は、プライマリサーバ(マスター)とホットスタンバイ(ホットスタンバイ)として2つのサーバを使用し、すべての部分をプライマリサーバに要求し、プライマリサーバが停止したときにすぐにバックアップサーバに切り替えることです。システム全体の可用性を向上させる。

このタイトルを初めて見たときに驚きましたが、Apacheはまだ負荷分散を行うことができますか?強力すぎます。調査の結果、問題ないことが判明し、機能はまったく悪くありませんでした。これはmod_proxyモジュールが原因です。それは強力なApacheの価値があります。

意味のない、負荷分散の設定方法を説明しましょう。

一般的に言って、負荷分散は負荷分散を達成するためにバックエンドの各実サーバーにクライアントのリクエストを分配することです。もう1つの方法は、プライマリサーバ(マスター)とホットスタンバイ(ホットスタンバイ)として2つのサーバを使用し、すべての部分をプライマリサーバに要求し、プライマリサーバが停止したときにすぐにバックアップサーバに切り替えることです。システム全体の信頼性を向上させる。

1.負荷分散の設定

1)基本設定

Apacheはこれら両方の要件を処理できます。負荷分散の方法について話しましょう。 Apacheサーバーのドメイン名がwww.a.comであると仮定すると、まずApacheのいくつかのモジュールを有効にする必要があります。

Httpd.confコードLoadModule proxy_module modules /mod_proxy.so LoadModule proxy_balancer_module modules /mod_proxy_balancer.so LoadModule proxy_http_module modules /Mod_proxy_http.so

mod_proxyはプロキシサーバー機能を提供し、mod_proxy_balancerは負荷分散を提供し、mod_proxy_httpはプロキシサーバーがHTTPをサポートすることを可能にします。 mod_proxy_httpを他のプロトコルモジュール(mod_proxy_ftpなど)に変更すると、他のプロトコルの負荷分散をサポートできるようになる場合があります。

次に、次の設定を追加します。

Httpd.confコードProxyRequests Off<プロキシバランサ://mycluster> BalancerMember http://node-a.myserver.com:8080 BalancerMember http: //node-b.myserver.com:8080< /Proxy> ProxyPass /balancer://mycluster /#警告:次の設定はデバッグ目的のためのものです。本番環境に追加しないでください。 ! ! < Location /balancer-manager> SetHandlerのbalancer-managerの順序拒否、許可すべてからの拒否ローカルホストからの許可< /Location>

注:node-a.myserver.com、node-b.myserver.com現在のサーバーのドメイン名ではなく、他の2つのサーバーのドメイン名です。

上記のProxyRequests Offからわかるように、ロードバランサーは実際にはリバースプロキシです。ただし、プロキシ転送アドレスが確実ではありません。特定のサーバーですが、バランサ://プロトコル:
/バランサ://myclusterプロトコルアドレスは気軽に定義できます。次に、セグメントにバランサプロトコルの内容を設定します。 BalancerMemberコマンドは、ロードバランシンググループに実サーバアドレスを追加します。

次の段落は負荷分散作業を監視するために使用され、デバッグ中に追加することができ(本番環境では禁止されています)、http://localhost /balancer-manager /にアクセスして確認します。負荷分散作業条件

変更後にサーバーを再起動し、Apacheサーバーのアドレス(www.a.com)にアクセスすると、負荷分散の効果がわかります。

エラープロンプト:

Webページのプロンプトにアクセス内部エラーが発生しました。error.logファイルを表示してください。

Error.logコード[警告]プロキシ:URLに対して有効なプロトコルハンドラがありませんでした。 /admin /login_form DSOバージョンのmod_proxyを使用している場合は、LoadModuleを使用してプロキシサブモジュールが設定に含まれていることを確認してください。

理由は次のとおりです。#ProxyPass /balancer://myclusterが見つからない可能性があります。 /

2)。負荷率の割り当て

バランサマネージャインタフェースを開くと、リクエストが均等に分散されていることがわかります。

均等に配布したくない場合は? 1〜100の範囲で、loadfactorパラメータをBalancerMemberに追加します。たとえば、負荷分散比が7:2:1のサーバーが3つある場合は、次のように設定します。

Httpd.confコードProxyRequests Off<プロキシバランサ://mycluster> BalancerMember http://node-a .myserver.com:8080 loadfactor = 7 BalancerMember http://node-b.myserver.com:8080 loadfactor = 2 BalancerMember http://node-c.myserver.com:8080 loadfactor = 1< /Proxy> ProxyPass /Balancer://mycluster

3)。負荷割り当てアルゴリズム

デフォルトでは、負荷分散は各サーバーが受け付けるリクエストの数をあらかじめ設定された比率にしようとします。アルゴリズムを変更したい場合は、lbmethodプロパティを使用できます。

Httpd.confコードProxyRequestsオフ<プロキシバランサ://mycluster> BalancerMember http://node-a.myserver.com:8080 loadfactor = 7 BalancerMember http://node-b.myserver .com:8080 loadfactor = 2 BalancerMember http://node-c.myserver.com:8080 loadfactor = 1< /Proxy> ProxyPass /balancer://mycluster ProxySet lbmethod = bytraffic

lbmethodが可能値は次のとおりです。

lbmethod = byrequests要求とのバランス(デフォルト)

lbmethod = bytrafficトラフィックのバランスをたどる

lbmethod = bybusyness忙しさのバランス(常にアクティブに割り当てられる)リクエストが最も少ないサーバー)

さまざまなアルゴリズムの原則については、Apacheのドキュメントを参照してください。

Copyright © Windowsの知識 All Rights Reserved