ApacheとTomcatと連携させる際、特定のディレクトリのみApacheで動作させる

IT

1台のサーバ上で2つのアプリケーションを動かす際にApacheの設定で少しハマったので備忘録として残します。

ApacheとTomcatを連携させる際に、httpd.confに以下のような設定を入れるかと思います。

<Location/>
    ProxyPass ajp://localhost:8009
</Location>

一方のアプリケーションはTomcatで動かし、もう一方のアプリはApacheに応答させたい場合、以下のように書いても設定は上書きされていくためうまく動作しません。/app2もtomcat上で実行されてしまいCGIがうまく動いてくれませんでした。

<Location/>
    ProxyPass ajp://localhost:8009
</Location>

ScriptAlias /app2 /usr1/app2/cgi-bin
<Location/app2>
    AllowOverride None
    Options ExecCGI
</Location>

Apacheの設定は上から上書かれていくので/app2でProxyPassを無効にする必要がありました。

<Location/>
    ProxyPass ajp://localhost:8009
</Location>

ScriptAlias /app2 /usr1/app2/cgi-bin
<Location/app2>
    AllowOverride None
    Options ExecCGI
    ProxyPass !
</Location>

ProxyPassを無効にする方法がわからず悩んでいましたが「ProxyPass !」でよかったんですね。少しハマりましたが無事設定ができたのでよかったです。

コメント

タイトルとURLをコピーしました