Ubuntu 16.04
Sponsored Link

mod_proxy を利用する#2
2016/06/15
 
mod_proxy モジュールを有効にして、特定のコンテンツへのリクエストを別の Web サーバーに転送するリバースプロキシ機能の設定をします。
(1) www.srv.world [10.0.0.31] - Webサーバー#1
(2) node01.srv.world [10.0.0.51] - Webサーバー#2
(1) のサーバーの / 以下のリクエストを (2) のサーバーの / 以下へ転送します。
[1] mod_proxy は apache2 パッケージに含まれているため、パッケージの追加インストールは不要です。
root@www:~#
a2enmod proxy proxy_http

root@www:~#
vi /etc/apache2/mods-enabled/proxy.conf
# <IfModule mod_proxy **> ~ </IfModule> 間に追記

<IfModule mod_proxy.c>
    ProxyRequests Off
    <Proxy *>
        Require all granted
    </Proxy>
    ProxyPass / http://node01.srv.world/
    ProxyPassReverse / http://node01.srv.world/

root@www:~#
systemctl restart apache2
  転送設定をした / へアクセスして、設定通りバックエンドのサーバーが応答するか確認します。
[2]
負荷分散可能なリバースプロキシ設定もできます。
(1) www.srv.world [10.0.0.31] - Webサーバー#1
(2) node01.srv.world [10.0.0.51] - Webサーバー#2
(3) node02.srv.world [10.0.0.52] - Webサーバー#3
(1) のサーバーの / 以下のリクエストを (2),(3) のサーバーへ、リクエスト数に応じて負荷分散をするように設定します。
root@www:~#
a2enmod proxy proxy_http lbmethod_byrequests

root@www:~#
vi /etc/apache2/mods-enabled/proxy.conf
# <IfModule mod_proxy **> ~ </IfModule> 間に追記

<IfModule mod_proxy.c>
    ProxyRequests Off
    <Proxy *>
        Require all granted
    </Proxy>
    # lbmethod でロードバランス方法を指定。転送量のバイト数で負荷分散する「bytraffic」も指定可能。
    ProxyPass / balancer://cluster lbmethod=byrequests
    <proxy balancer://cluster>
        BalancerMember http://node01.srv.world/ loadfactor=1
        BalancerMember http://node02.srv.world/ loadfactor=1
    </proxy>

root@www:~#
systemctl restart apache2
  転送設定をした / へアクセスして動作確認します。 ブラウザの更新ボタンを何度か押下し、バックエンドサーバーが切り替わることを確認してください。
 
Tweet