GlassFish v3 Prelude の導入(3) Apache連携

通常のWebリクエストはApacheで受けて特定のURIはGlassFishに流して結果を返すという、いわゆるApacheとGlassFishの連携を設定します。ここでのやり方はかなりシンプルです。

どこかのサイトでGlassFish v2のApache連携はTomcat5.5をベースにほにゃららという記述があって、ならばGlassFish v3はTomcat6だと勝手に思い込んで作業したのですが正解だった模様です。Tomcatのファイルなど必要ありません!

Apache モジュールの有効化

連携に必要となるモジュールproxy_ajpを有効化します。

$ sudo a2enmod proxy_ajp
Enabling proxy as a dependency
Module proxy installed; run /etc/init.d/apache2 force-reload to enable.
Module proxy_ajp installed; run /etc/init.d/apache2 force-reload to enable.
$

Apache の設定

/etc/apache2/mods-enabled/proxy.conf という設定ファイルができていると思います。デフォルトでは全拒否状態ですので使用状況に応じて修正します。今回はいわゆるReverseProxyという形になります。<proxy>タグの中にDeny from allとなっているところをAllow from allに書き換えます。

ちなみに冒頭にコメントされているのですが、ProxyRequestsはフォワードプロキシ用の設定であり、今回はリバースプロキシとして設定するため絶対にOnにしてはいけません。スパマーの踏み台されます。

<IfModule mod_proxy.c>
        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.

        ProxyRequests Off

        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
                #Allow from .example.com
        </Proxy>

        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block

        ProxyVia On
</IfModule>

次に、/etc/apache2/mods-enabled/proxy_ajp.conf ファイルを作成します。この中にGlassFishに渡したいURIパターンと渡す先を記述します。

例えば、このサイトでは/pcと/music配下はGlassFishにデプロイしたServlet + JSPで動いていますのでこんな感じになっています。

<IfModule mod_proxy_ajp.c>
    <Location /pc/>
        ProxyPass ajp://localhost:8009/pc/
    </Location>
    <Location /music/>
        ProxyPass ajp://localhost:8009/music/
    </Location>
</IfModule>

ちなみに、既にApacheまでリクエストが到達してからの話ですので、連携先のGlassFishが同じマシン内にあるのであればProxyPassはlocalhostで良いのです。

設定ができたら反映しておきましょう。

$ sudo /etc/init.d/apache2 force-reload
 * Reloading web server config apache2                                                                           [ OK ]
$

GlassFish の設定

次にGlassFishの設定ですが、上で設定した8009ポートでajpプロトコルを受け渡しするよという設定をするだけです。

管理コンソールからなら、アプリケーションサーバー を選択して、JVM設定 → JVMオプションで

-Dcom.sun.enterprise.web.connector.enableJK=8009

を追加して再起動するだけです。

コマンドでやるなら、

$ glassfishv3-prelude/bin/asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009
created 1 option(s)

コマンド create-jvm-options は正常に実行されました。
$

これでOK。簡単になったものです。(^^)

[記事作成日: 2009-05-15]

Homepage banner and link for this title's top page
Top > Knowledge > Ubuntu 8.04 LTS Server > GlassFish v3 Prelude の導入(3) Apache連携
このエントリーをはてなブックマークに追加
デル特急便(ノートブック)
Microsoft Surface
NECアウトレット商品ノートPC
Epson Direct お得なキャンペーン実施中!
Panasonic マイレッツ倶楽部 キャンペーン&お得情報
東芝ダイレクトクーポンキャンペーン実施中!
Dospara アウトレットPC
エプソン製品のアウトレット販売
マウスコンピューター/G-Tuneデル株式会社HP Directplus オンラインストア