4.12 Apacheリバース・プロキシー
Apacheサーバーは、リバース・プロキシー・サーバーとして機能するように構成できます。
リバース・プロキシー・サーバーは、クライアントに対して通常のWebサーバーと同様に表示されます。
クライアント上で特別な構成は必要ありません。
クライアントは、リバース・プロキシーのネームスペースで内容に関する通常の要求を行います。
リバース・プロキシーはこれらの要求の送信先を決定し、リバース・プロキシー自体が送信元であるかのように内容を返します。
リバース・プロキシーは、通常、インターネット・ユーザーがファイアウォールの後ろにあるサーバーにアクセスする場合に使用されます。
また、複数のバックエンド・サーバー間で負荷を分散する場合や、比較的速度が遅いバックエンド・サーバー用にキャッシュを提供する場合にも使用できます。
さらに、複数のサーバーを同じURLスペースに入れるだけの場合も使用できます。
リバース・プロキシー構成にさらに柔軟性を持たせる必要がある場合は、[P]フラグを使用するRewriteRuleディレクティブを参照してください。
詳細については、以下を参照してください。
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
以下はIBM Apache Serverの構成例です。
# Apache構成 - リバース・プロキシー
#
LoadModule proxy_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
LoadModule proxy_http_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
# LoadModule proxy_ftp_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
# LoadModule proxy_connect_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM
#
Options None
Listen 10.2.0.170:2334
ServerRoot /www/jsmproxy
DocumentRoot /www/jsmproxy/htdocs
# DefaultFsCCSID 37
# DefaultNetCCSID 819
# ServerUserID USERPROFILE
#
LogLevel Warn
LogCycle Daily
ErrorLog logs/error_log
CustomLog logs/access_log combined
LogFormat "%{User-agent}i" agent
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{Cookie}n \"%r\" %t" cookie
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#
SetEnvIf "User-Agent" "Mozilla/2" nokeepalive
SetEnvIf "User-Agent" "JDK/1\.0" force-response-1.0
SetEnvIf "User-Agent" "Java/1\.0" force-response-1.0
SetEnvIf "User-Agent" "RealPlayer 4\.0" force-response-1.0
SetEnvIf "User-Agent" "MSIE 4\.0b2;" nokeepalive
SetEnvIf "User-Agent" "MSIE 4\.0b2;" force-response-1.0
#
#ユーザー名ベースの仮想ホスティング
NameVirtualHost 10.2.0.170
#
<VirtualHost 10.2.0.170>
#最初の仮想ホストのディレクティブが省略値のホストになる
Options None
ServerName LANSA01
TimeOut 3000
ProxyReverse On
ProxyRequests Off
ProxyTimeOut 3000
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
#
#すべての要求を渡す
# ProxyPass / http://lansa01:1099/
# ProxyPassReverse / http://lansa01:1099/
#
# CGI要求のみを渡す
ProxyPass /cgi-bin/ http://lansa01:1099/cgi-bin/
ProxyPassReverse /cgi-bin/ http://lansa01:1099/cgi-bin/
</VirtualHost>
#
<Directory />
Options None
Order Allow,Deny
Deny from all
AllowOverride None
</Directory>
#
<Directory /www/jsmproxy/htdocs>
Options None
Order Allow,Deny
# Deny from all
Allow from all
AllowOverride None
</Directory>