使用Apache进行负载均衡配置
首先
以下是我对在Apache 2.4中使用mod_proxy_balancer将请求分发给下属Web服务器的方法进行简单测试的总结。
系统配置图 (xì zhì tú)
当接收到/balancer的访问时,按顺序将请求转发到后端的service1至3。
-
- 動作確認では localhost にて試したが、バックエンドは別サーバーでも問題ない
-
- 今回は service1 ~ 3 に Hello World という文字列を返すだけのHTTPサーバーを用意した
Kazunori-Kimura/http-dummy-server
设定
httpd.conf 的中文释义为:“超文本传输协议守护进程配置文件”。
(1)创建httpd-balancer.conf文件。
为了将Balancer设置集中在一个地方,创建一个设置文件。
ProxyPass /balancer balancer://mycluster lbmethod=byrequests timeout=1
<Proxy balancer://mycluster>
BalancerMember http://127.0.0.1:8081 loadfactor=1
BalancerMember http://127.0.0.1:8082 loadfactor=1
BalancerMember http://127.0.0.1:8083 loadfactor=1
</Proxy>
<Location /manager>
SetHandler balancer-manager
</Location>
当访问到/balancer时,请求被分配给已在中注册的BalancerMember。
装载因子是一种加权概念,数字较大的成员优先被分配请求。
当您访问管理者时,将显示mod_proxy_balancer的管理界面,其中包括每个成员的状态和请求分发情况的显示。
在httpd.conf文件中启用以下模块。
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule status_module modules/mod_status.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
本次只是简单地按照请求的顺序进行分配,因此需要启用 mod_lbmethod_byrequests.so。
如果在 httpd-balancer.conf 的 ProxyPass 中使用除 lbmethod=byrequests 之外的方法,需要取消相应模块的注释。
加载 httpd-balancer.conf
在 httpd.conf 文件的末尾添加 Include 来读取 httpd-balancer.conf 文件。
Include conf/extra/httpd-proxy-balancer.conf
重新启动Apache
(5) 确认动作
/balancer にアクセスし、Hello World が表示されることを確認
何度かブラウザのリロードを繰り返し、各ダミーサーバーに順繰りにリクエストが来ることを確認
service1 ~ 3 のいずれかを停止した状態でブラウザのリロードを繰り返すと、Activeなサーバーのみにリクエストが来ることを確認
请参考以下资料。
请看以下资料。
-
- mod_proxy – Apache HTTP サーバ バージョン 2.4
-
- mod_proxy_balancer – Apache HTTP サーバ バージョン 2.4
-
- Apache2.4でロードバランシング設定して管理画面(バランサマネージャ)で確認する。 – ボールを蹴りたいシステムエンジニア
-
- セッションを継続するための設定
クラスタ構成の Tomcat をApacheでロードバランスする
Apache – mod_proxy_balancer | eastforest