Eclipse上で、Tomcatのプラグインを利用して作成したWebアプリケーションをルート(ドメイン直下)で公開することになったので、その時の設定を備忘的に書いておきます。
Tomcatでは、「Tomcatインストールフォルダconf」の下に、「server.xml」というファイルがあり、その中の
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
という箇所でデフォルトで読み込むWebアプリのディレクトリを定義しています。
つまり、このフォルダ配下にあるWebアプリを自動的に読み込む設定になっています。
このフォルダには、TomcatをWebベースで管理するアプリケーション「ROOT」があり、それがドメイン直下のコンテキストで公開されているので、これを置き変えてあげる必要があります。
そのため以下の手順で作業を行いました。
作業手順
以上で、「localhost:8080/」のようにルートのURLで自分のWebアプリにアクセスできるようになります。
TomcatとApacheの連携の設定変更
なお、私はTomcatとApacheを連携させるようにしています。
これは、画像やhtml、cssなどの静的なリソースは、Tomcatにハンドリングさせるのではなく、Apacheで処理した方がパフォーマンスが向上するためです。
なので、上記の変更に伴い、Apache側のTomcat連携用のファイル「httpd-proxy.conf」の中身も、以下のように変更しました。
ProxyPass /resource/ !
ProxyPass / ajp://localhost:8009/
一行目は、Apacheのhtdocsフォルダの中の「resource」フォルダ配下に対するリクエストはTomcatに連携しないという設定です。
なお、resourceフォルダには、Apache側に処理させたい静的なファイルを一式置いておきます。
二行目は、それ以外のルートURLへのリクエストはTomcatに連携しますよという設定です。