リファレンス

リバースプロキシ設定事例

リバースプロキシとは?

リバースプロキシは、リクエストを他の Web サーバーに中継する機能です。 同一ネットワーク内の複数のサーバーで稼動しているWebサイトをひとつのグローバルIPアドレスで公開できます。

リバースプロキシには様々なオプションがありますが、以下では負荷分散の機能を使ったロードバランサーとしての利用方法をご紹介します。

具体的には Linux(CentOS 6系) での Apache と mod_proxy の mod_proxy_balancer を利用した設定をご案内します。

本リファレンスはお名前.comクラウドにてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて追加設定を行なってください。

なお、お名前.comクラウドではお客様に代わり、弊社にて設定を代行させていただく設定代行サービスのご用意がございます。

 ※設定代行サービスの詳細は こちら

ご希望の場合、コントロールパネルよりお申し込みください。

 お名前.comクラウド コントロールパネル

事前準備

最低3台のサーバーが必要です。コントロールパネルよりサーバーを追加します。

サーバー構成例:

プロキシ設定機1台 (ローカルIP 10.134.1.100)
Webサーバー2台 (ローカルIP 10.134.1.101, 10.134.1.102)

 

 

iptablesの設定追加

iptablesに、httpのリクエストの許可を追記します。REJECTの行より上に追記してください。3台すべてに設定が必要です。

#less /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --dport 80 -j ACCEPT  ←追記
-A INPUT -p tcp --dport 443 -j ACCEPT  ←追記(443番ポートでも利用する場合)
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

iptablesを再起動します。

#service iptables restart

 

Apacheのインストール

3台すべてにApacheをインストールします。

#yum -y install httpd
#yum -y install mod_ssl (443番ポートでも利用する場合)

これでWebサーバー2台の設定は完了です。

 

httpd.conf の設定

以下はプロキシ設定機に行います。

モジュール「mod_proxy」が標準で有効になっていますので、以下の行があるか確認してください。

#less /etc/httpd/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

 

httpd.conf の最終行に以下を追加します。

例では 「loadfactor=10」で負荷分散アルゴリズムのための重み付けを行っています。指定できる数値は「1-100」の範囲で、値が大きくなるほど使用頻度が高くなります。

<VirtualHost *:80>
  ProxyPass / balancer://cluster/
  ProxyPass /balancer-manager !
 
  <Location /balancer-manager>
    SetHandler balancer-manager
    Order Deny,Allow
    Deny from all
    Allow from 10.134.1.0/24
  </Location>
 
  <Proxy balancer://cluster/>
    BalancerMember http://10.134.1.101/ loadfactor=10
    BalancerMember http://10.134.1.102/ loadfactor=10
  </Proxy>
</VirtualHost>

 

SSL通信を利用する場合は、ssl.conf のバーチャルホスト内に追記してください。

証明書をご利用される場合は、適時ご変更ください。

#less /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>
・
・
・
# SSLCertificateFile /etc/pki/tls/certs/localhost.crt  ←デフォルトの証明書をコメントアウト
# SSLCertificateKeyFile /etc/pki/tls/private/localhost.key  ←デフォルトの秘密鍵をコメントアウト
SSLCertificateFile /etc/httpd/conf.d/server.crt  ←証明書の設置場所を追記 SSLCertificateKeyFile /etc/httpd/conf.d/server.key  ←秘密鍵の設置場所を追記 ServerName testexample.com:443  リバースプロキシのグローバルIPまたはFQDN:443
  SSLEngine on   SSLProxyEngine on     ProxyPass / balancer://cluster/   ProxyPass /balancer-manager !     <Location /balancer-manager>     SetHandler balancer-manager     Order Deny,Allow     Deny from all     Allow from 10.134.1.0/24   </Location>     <Proxy balancer://cluster/>     BalancerMember https://10.134.1.101/ loadfactor=10     BalancerMember https://10.134.1.102/ loadfactor=10   </Proxy> </VirtualHost>

 

Apacheを起動します。

#service httpd start

 

ブラウザからのアクセスを確認してください。

http://(プロキシ設定機のグローバルIPアドレス) 

トップに戻る