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 !」でよかったんですね。少しハマりましたが無事設定ができたのでよかったです。


コメント