はじめに
* Tomcat 単体で十分動く(※)のに、何故わざわざ Apache と連携させるの?って思ったので調べてみた ※ 簡易Webサーバとしての機能も有しているため、Webページの表示が可能 * 実際の設定は、以下の関連記事を参照のこと。http://blogs.yahoo.co.jp/dk521123/36072244.html
[1] パフォーマンス
1) 静的なファイル(HTMLファイルや画像ファイル)をより高速なApacheが処理し、 動的なページ(サーブレット、JSP)をTomcatが処理することによって効率のよいレスポンスが実現できる。 + なるほど。ただ、静的なファイルが少ないシステムではあまりメリットがないかも。 2) Apache に複数台の Tomcat を接続して負荷分散をすることもできる + これはデカい
[2] セキュリティ
1) ApacheなどのWebサーバはTomcatより歴史の長く、 その分セキュリティーホールの危険性も少ないため セキュリティの面でTomcatよりも信頼性が高い + 一概に言えるのかっと疑問。ApacheのノウハウをTomcatに取り込めばいいような... + 以下の参考文献(2)では、以下のように述べている。 *--- ApacheはCとC++で組んでありますが、TomcatはJavaで組んであるため、 基本的なセキュリティフォールが少ないという前提があります。 # すべてに言える事だと思うのですが、完璧ではありません。 *--- 2) Tomcat ではできない細かなセキュリティー対策やアクセス制限が Apache 側でできる + なるほど、なるほど 3) Tomcat単体だと管理画面(ユーザ認証があるが)が誰にでも見られるリスクが残るが、 Apacheと連携させれば、その危険を軽減できる + なるほど
連携させるデメリット
以下の参考文献(2)より1) Tomcat単体より低速 2) セキュリティホールが単体より多い場合がある。 3) セットアップが面倒。アップグレード作業も手順が増える 4) プロキシに問題があった場合の切り分けがとても難しくなる。
クラスタリング機能 / セッションレプリケーション
クラスタリング
* 複数のマシンを連携させることで、処理速度、稼働時間を向上させる技術
セッションレプリケーション
* 複数のTomcat間でセッション内の情報を同期できる機能http://www23.atwiki.jp/shin-b/pages/25.html
http://www.mclnet.co.jp/tech/webap/tomcat/tomcat_cluster.html
http://www.infoscoop.org/blogjp/2012/07/04/tomcat%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E7%92%B0%E5%A2%83%E3%81%A7session-replication%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
参考文献
連携させるメリットに関する参考文献
(1-1)http://thinkit.co.jp/free/article/0708/2/9/
(1-2)
http://pc.miyakat.info/apache/
(1-3)
http://www.ddbank.net/cgi-bin/webapp/wiki.cgi?page=Apache%A4%C8Tomcat%A4%CE%CF%A2%B7%C8%AD%A1
(1-4)
http://whzat.dyns.net/shoko3/Tomcat-Apache/