@WIKI

Tomcat (Webサーバとの連携)

最終更新:

atyou

- view
管理者のみ編集可
TomcatもWebサーバ機能を持っていますが、従来のWebサーバソフトと比較すると性能が良くなく検証作業など内部利用にとどめた方が良いと言われています。
本格的なWebサーバ機能が必要なシステムでは、Apache、IISなどの専用WebサーバソフトとTomcatを連携して使用します。
以下に、TomcatのWebサーバ機能を利用すべきでないと言われている理由を記載します。

   * TomcatのWebサーバ機能は歴史が浅く、Webサーバ専用ソフトと比較すると安定性が悪く、セキュリティも高くない。
   * TomcatのWebサーバ機能は一般に高速ではない。
   * Webサーバ専用ソフトを使用することにより静的コンテンツと動的コンテンツの処理を分散させることができる。

TomcatとWebサーバ(Apache、IISなど)の連携は以下のようにして行います。
(1). Webサーバエンジンは受け取ったリクエストが設定したURLパターンに合致する場合、そのリクエストを連携モジュールに渡します。
(2). 連携モジュールは連携プロトコルを使用し、そのリクエストを連携コネクタに渡します。
(3). 連携コネクタはリクエストをJSP/サーブレットコンテナに渡し、そこで処理が実行されます。




サーブレットマッピングなしでサーブレットクラスを利用するには

invokerサーブレットを用いるとサーブレットマッピングがなされなくても、「http://ホスト名/Webアプリケーション名/servlet/サーブレット名」ようなURLでサーブレットをロードできます。
Tomcat 5.5のデフォルト状態では、このInvokerサーブレットが無効になっています。
これを有効にするには、「$CATALINA_HOME/conf /web.xml」の99行目からのコメントアウトと349行目からのコメントアウトをはずす必要があります。
ただし、Invokerサーブレットにはセキュリティホールが報告されています。テスト環境以外でInvokerを有効にしないよう注意してください。

Ja-JakartaプロジェクトTomcat質問集「Invokerは、なぜよくないの?」
http://www.jajakarta.org/tomcat/faq/misc.html#evil
目安箱バナー