このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
次の例では、HAProxyを使用して、受信リクエストを2つのバックエンドWebサーバー間で分散し、さらにバックエンド・サーバーでサービス停止を処理する機能も持つフロントエンド・サーバーを実装します。
「図17.1」には、外部向けネットワーク(10.0.0.0/24)および内部ネットワーク(192.168.1.0/24)に接続されたHAProxyサーバー(10.0.0.10)が表示されます。 websvr1 (192.168.1.71)およびwebsvr2 (192.168.1.72)という2つのwebサーバーに内部ネットワークでアクセスできます。 IPアドレス10.0.0.10は、インターネットでルーティングできないプライベート・アドレス範囲の10.0.0.0/24にあります。 アップストリーム・ネットワーク・アドレス変換(NAT)ゲートウェイまたはプロキシ・サーバーが、インターネットとの間のアクセスを提供します。
サーバーの/etc/haproxy/haproxy.cfgで次の構成を使用できます。
global
daemon
log 127.0.0.1 local0 debug
maxconn 50000
nbproc 1
defaults
mode http
timeout connect 5s
timeout client 25s
timeout server 25s
timeout queue 10s
# Handle Incoming HTTP Connection Requests
listen http-incoming
mode http
bind 10.0.0.10:80
# Use each server in turn, according to its weight value
balance roundrobin
# Verify that service is available
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
# Insert X-Forwarded-For header
option forwardfor
# Define the back-end servers, which can handle up to 512 concurrent connections each
server websvr1 192.168.1.71:80 weight 1 maxconn 512 check
server websvr2 192.168.1.72:80 weight 1 maxconn 512 check
この構成では、HTTPトラフィックが2つのバックエンドWebサーバーwebsvr1およびwebsvr2の間で分散され、これらのサーバーのファイアウォールは、ポート80で受信TCPリクエストを受け入れるように構成されています。
Webサーバーに単純な/var/www/html/index.htmlファイルを実装し、curlを使用して接続をテストした後は、次の出力に、HAProxyがどのようにトラフィックをこれらのサーバー間で分散し、どのようにwebsvr1でのhttpdサービス停止を処理するかが示されます。
$while true; do curl http://10.0.0.10; sleep 1; doneThis is HTTP server websvr1 (192.168.1.71). This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr1 (192.168.1.71). This is HTTP server websvr2 (192.168.1.72). ... This is HTTP server websvr2 (192.168.1.72). <html><body><h1>503 Service Unavailable</h1> No server is available to handle this request. </body></html> This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr2 (192.168.1.72). ... This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr1 (192.168.1.71). This is HTTP server websvr2 (192.168.1.72). This is HTTP server websvr1 (192.168.1.71). ...^C$
この例では、websvr1でhttpdサービスが再起動され、websvr2に加えてこのサーバーも再び使用し始めたことが、HAProxyによって検出されました。
HAProxyのロード・バランシング機能とKeepalivedまたはOracle Clusterwareの高可用性機能を組み合せることで、プライマリ・ロード・バランサに障害が発生した場合にサービスの継続性を保証するバックアップ・ロード・バランサを構成できます。 17.10項「Keepalivedを使用したHAProxyの高可用性の実現」および17.12項「Oracle Clusterwareを使用したHAProxyの高可用性の実現」を参照してください。
HAProxyをインストールおよび構成する方法の詳細は、17.2項「HAProxyのインストールと構成」を参照してください。


