TomcatとApacheの連携?

前ブログの再掲

TomcatApacheの連携させることがあります。

TomcatにもWebサーバ機能があるのになぜApacheと連携させるのか? 」が不明だったので調べました。

  • Tomcatサーブレットコンテナがメインであり、Webサーバの機能は開発などのデバッグなどで使用されることを想定に作られたので、WebサーバとしてはApacheには劣る。
  • Webサーバは静的なコンテンツ(画像など)を大量に処理をするのに向いており、そういった処理が多いページではApacheの方が便利。

 

次の疑問

「 では静的コンテンツが少ないページならTomcatだけで良い?」

  • 1台のApacheサーバから複数のTomcatへ処理の分散が可能で処理効率を良くすることができ、1つのTomcatが落ちても別のTomcatで処理を続行可能なのでクライアント側での操作に問題が起きにくい。
  • Apacheならアクセス制御などセキュリティという点で優れている。 というかTomcat単体で動作させる場合は管理画面を誰からでも表示できる(パスワードのセキュリティはあるが管理画面の表示自体がセキュリティ上問題)
  • ApacheTomcatより豊富な機能追加のモジュールが用意されている。

 

さらに疑問

「ではTomcat単体よりApacheを連携させる方が良いのか?」

  • Tomcat単体で動かすより動的コンテンツの処理が低速になる場合がある
  • TomcatApacheの2つを使うことでセキュリティホールが多くなる可能性がある
  • 構築が手間(らしい)

 

以上を踏まえてまとめると
  • Tomcat単体でサーバ構築する場合は社内サーバなどアクセスが限られて大規模では無い場合に向いている。
  • ユーザに向けて公開するサーバ構築にTomcatを使用するならApacheと連携させることはほぼ必須。