以下がリクエストをApache HTTPd からGeroimoサーバー(またはお手元のどのようなサーバーであれ)へリルートする一番簡単な方法です。この機能を使うには特定のモジュールを有効にし、HTTPdの構成に数行を追加する必要があります。手順は以下の通りです。
- <httpd_home>\conf ディレクトリー上の
httpd.conf
をオープンします。 - 以下のLoadModuleディレクティブを探し、行の先頭の # を除去して、コメントではないようにします。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
- リルートを有効にするために、httpd.confの末尾に以下の数行を追加します。
ProxyPass /console http://localhost:8080/console
ProxyPass /images http://localhost:8080/images
ProxyPassReverse / http://localhost:8080/
アプリケーションによっては、更にいくつかの ProxyPass ディレクティブを追加する必要があるかもしれません。末尾の ProxyPassReverse ディレクティブがGeronimoサーバーからのレスポンスを受け取り、Apache HTTPdから直接レスポンスが返るようにURLをマスクしますので、Geronimoサーバーを特定できる情報やロケーションを隠蔽できます。
この例ではデモの目的で console を有効化しています。本番環境では、他のネットワーク(通常はインターネット)から console へアクセスできるようにしたいとは思わないでしょう。 console をネットからアクセス可能とすることは、セキュリティ面で重要な情報を露出することになりますから。
全ては制限されたアクセスであるべきであり、通常はHTTPとアプリケーション・サーバー間には(トポロジーにもよりますが)ファイアー・ウオールが設置されているべきでしょう。そして、ネット側から貴方のアプリケーションを操作するために必要な最低限のリソースのみをマップするようにすべきです。
もし HTTPd と Geronimo サーバーが同一のマシン上にあるなら、リダイレクトのために localhost を利用することができます。もしサーバーが異なるマシン上に存在する場合には、Geronimo サーバー用に URL を指定する必要があります。
上記のような構成をした後、ブラウザーで http://locahost/console を指定すれば、そのリクエストは http://localhost:8080/console へリダイレクトされることになります。この方法でURLとポートをリルートすることが可能になります。