Revised: 4th/Dec./2002
標準的なサーバ構成では、Tomcat 単体に HTTP サーバの役割を担わせることはありません。Tomcat も HTTP サーバの機能を持っているのですが、セキュリティ、機能、付加分散の観点で、 HTTP サーバとアプリケーションサーバは別個のマシンで用意することが推奨されます。
機能面から考えると、HTTP サーバでは Apache が圧倒的な完成度と市場支配力を持っており、Tomcat で実装されているものよりも信頼性が高くなります。また、多くの製品が Apache に追加する Plug-in の形で提供されているため、この資産を活かすということもあります。
セキュリティメンでは、バックエンドの業務システムとの連携が必要なアプリケーションサーバはプロクシサーバの背後、つまり外部から見えないイントラネット内に配置し、外部(インターネット)からのアクセスは DMZ (Demilitarized Zone) に配置することになります。
負荷分散という観点では、HTTP サーバとアプリケーション・サーバを分ければ、動的な処理が必要で高負荷なアプリケーションサーバを複数マシンで用意しておき(サーバ・デュプリケーション)、処理する要求を分散させることができます。
Tomcat 4.1.12 からは、Apache 連携が前面に押し出されています。今までも当然の設計だったわけですが、Apache と Tomcat を連携するための Apache の Plug-in が一本化されておらず、 Apache と Apache2 で標準的な連携方法が異なる、実行環境ごとにソースからビルドする必要がある、2バイト文字の取り扱いで問題が生じることがあるなど、面倒であったことも否定できません。
Tomcat 4.1.12 では、構成ファイルがデフォルトで用意されており、コネクタと呼ばれる Apache2 用の連携 Plug-in である mod_jk2 (JK2) の完成度も高まりました。但し、未だにコネクタは日進月歩の変更が加えられており、標準と呼べるまでにはいたっていないのが現状です。