Apache サーバーは、リバース・プロキシー・サーバーとして機能するように構成できます。

リバース・プロキシー・サーバーは、クライアントに対して通常のWebサーバーと同様に表示されます。

クライアント上で特別な構成は必要ありません。

クライアントは、リバース・プロキシーのネームスペースで内容に関する通常の要求を行います。

リバース・プロキシーはこれらの要求の送信先を決定し、リバース・プロキシー自体が送信元であるかのように内容を返します。

リバース・プロキシーは、通常、インターネット・ユーザーがファイアウォールの後ろにあるサーバーにアクセスする場合に使用されます。

また、複数のバックエンド・サーバー間で負荷を分散する場合や、比較的速度が遅いバックエンド・サーバー用にキャッシュを提供する場合にも使用できます。

さらに、複数のサーバーを同じURLスペースに入れるだけの場合も使用できます。 リバース・プロキシー構成にさらに柔軟性を持たせる必要がある場合は、[P]フラグを使用するRewriteRuleディレクティブを参照してください。

詳細は、Apache HTTP サーバー・バーション 2.4 に関する次の情報(Apache モジュール mod_proxy)を参照してください。

以下は IBM Apache サーバーの構成例です。

# 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
#
# 名前ベースの仮想ホスティングを使用
NameVirtualHost 10.2.0.170
#
<VirtualHost 10.2.0.170>
  # The first virtual host directive will become the default host
  Options None
  ServerName SERVER1
  TimeOut 3000
  ProxyReverse On
  ProxyRequests Off
  ProxyTimeOut 3000
  <Proxy *>
    Order Allow,Deny
    Allow from all
  </Proxy>
  #
  # すべての要求を渡す
  # ProxyPass / http://server1:1099/
  # ProxyPassReverse / http:// server1:1099/
  #
  # CGI 要求のみを渡す
  ProxyPass /cgi-bin/ http://server1:1099/cgi-bin/
  ProxyPassReverse /cgi-bin/ http://server1: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>
  • No labels