• ベストアンサー

apacheとTomcatの連携の意味について

http://okwave.jp/kotaeru.php3?q=1406504に関連しまして、 Apache:静的HTMLを扱う。URLをポート無しでアクセスできる。 Tomcat:動的JSP、Servletを配置。 たったこれだけの区別のためなのでしょうか? そのほかにapacheを入れる利点はありますでしょうか? また、WebサーバーとしてもTomcatは使えるということで、 URLをポート無しにすることもできるのでしょうか?

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

状況にもよりますが、中規模システムの場合には負荷分散が考えられます。Apache と Tomcat を別のサーバにインストールすることによって負荷分散をはかることが可能です。さらには、ロードバランスをすることも可能になります。 ただ、実際には最近のハードウェアスペックの工場に伴い、Apache と Tomcat が同一のサーバにインストールされることの方が多いように思います。この理由の1つには#1の方が回答されているようにセキュリティがあります。Tomcat でも、Port 80 で Listen するように設定すれば URL をポート番号なしでアクセスすることは可能です。しかしながら、Tomcat だけでは、SSL は当然のこと、きめ細かなアクセス制御はできません。 その他のメリットとして、Apache の機能の豊富さが挙げられますが、それについてはマニュアルを見ればすぐに分かると思います。

参考URL:
http://httpd.apache.org/docs/2.0/

その他の回答 (1)

  • ssm3u
  • ベストアンサー率52% (19/36)
回答No.1

過去投稿も読んでみました。 私も開発はTomcatのみで、実環境はApache+Tomcatです。 私が Apache経由にする一番の理由は、セキュリティです。 Apacheであればhttpd.conf等でセキュリティの設定ができますが、 Tomcatだけでは不安です。(私がやり方を知らないだけかもしれません) 他、mod_rewrite等を良く使いますのでこのあたりもApache様々です。 URLポート無しというのは、簡単に言うとポート80でWEBサーバを起動しているだけです。 ブラウザでポート指定しないと勝手に80になるから接続できます。 よってTomcatをポート80で起動すればURLをポートなしにできます。 Apache2.2では ApacheとTomcatを連携する mod_jkが不要になりましたので (httpd.confで設定できるようになった) 是非、実運用サーバではApache+Tomcatにした方が良いかと!

関連するQ&A

  • tomcatとapacheの連携

    tomcat4.0.2とapache1.3.26でwindows2000で連携させようとして↓ここを参考にインストール、設定しました。 http://www5b.biglobe.ne.jp/~y-tomy/tomcat/fig_include.html しかし、examples/servlet/はサンプル全て表示されるのですが、examples/jsp/はエラーが出て表示されません。どなたか原因がわかるかた教えてください。 エラーの内容 Apache Tomcat/4.0.2 - HTTP Status 500 - Internal Server Error javax.servlet.ServletException: サーブレット jsp のServlet.init()が例外を投げました at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653) root cause java.lang.NoSuchMethodError: javax.servlet.ServletContext.getResourcePaths(Ljava/lang/String;)Ljava/util/Set; (エラーの内容長いため途中省略)

    • ベストアンサー
    • Java
  • ApacheとTomcatの連携が出来ない

    Apacheのドキュメントルートフォルダ内でPHPとPerlが動くよう設定しています。今回、さらにJSPも動かせるようにTomcatを導入し、Apacheとの連携を試みたのですが、どうしても解決できない問題に躓いてしまいました。 http://journal.mycom.co.jp/special/2007/tomcat6/007.html 上記のサイトのように設定したのですが、まったくうまくいきません。 コメントアウトも外しましたし、リダイレクトの設定もしましたが、http://localhost/リダイレクト先/でアクセスすると404エラーが出ます。:8080とTomcatのデフォルトポート番号を足すとアクセス出来るので、リダイレクトが出来ていないようです。が、サイトに載っている作業は全部やったので自分ではお手上げ状態です。なにがいけないのでしょうか??? 環境は OS: Windows XP Apache: v2.2.4 Tomcat: v6.0.13 です。

  • apacheとtomcatについて

    お世話になっております。 現在趣味でapacheとtomcatを連携させて webアプリ的なものを作成しています。 そこで疑問に思ったことなのですが、 apacheとtomcatを連携させるのは、 ポート80からもサーバサイドJavaが使えるようになる、という 利点があるからだという風に解釈しています。 ただ、web上の様々なサイトを見るところ、 クライアントサイドはapache上で動かし、 サーバサイドはtomcat上で動かすという様な分別の仕方をしている ような記述が多く見られます。 私はクライアントサイドもサーバサイドも 全てtomcat上に配置して動かしているのですが、 クライアントサイドをapache上で動かすのはどのような利点があるのでしょうか。 よろしくお願いいたします。

  • ApacheとTomcatの連携について

    お世話になります。JSPを勉強する為にJSPが稼動するサーバー構築を行っていますがacheとtomcatの連携がうまくいきません。ネットで色々調べてみると.bashrcとか.bash_profileとかに環境変数を設定していましたが環境変数を設定するのはrootの中のファイルでしょうか? いままで行った作業は下記の通りです。 1.Java、TOMCAT、mod_webappをインストールしました。 2.tomcat4.confにJAVA_HOMEを下記のように設定。 JAVA_HOME="/usr/java/j2sdk1.4.1_01"←ここを追加 3.httpd.confを下記のように設定。 ・ServerName localhost←コメント「#」を削除。 ・LoadModule webapp_module modules/mod_webapp.so  AddModule mod_webapp.c  ※上記の内容が設定されているか確認。 ・下記のように変更。 <IfModule mod_webapp.c>  WebAppConnection warpConnection warp localhost:8008  WebAppDeploy examples warpConnection /examples/  WebAppDeploy manager warpConnection /manager/  WebAppDeploy webdav warpConnection /webdav/  WebAppInfo info ←追加。 </IfModule> 4.httpd.confのポートとserver.xmlのポートが「8008」になっているかを確認。 apcheは表示しました。 ・http://xxx.xxx.xxx.xxx[OK] Tomcatも表示しました。 ・http://xxx.xxx.xxx.xxx:8080[OK] ApacheとTomcatの連携がうまくいきません。 ・http://xxx.xxx.xxx.xxx/examples/jsp/index.html[NG] ※一度だけ表示できましたがサーバーを再起動したら表示できなくなりました。 下記のようにURLを設定する表示。 ・http://xxx.xxx.xxx.xxx:8080/examples/jsp/index.html[OK] □使用環境□ OS:RedHat7.2 Linux JAVA:1.4.1_01[SDK] APACHE:1.3.20※Apacheは既存を使用。 TOMCAT:4.0.4 TOMCAT-webapps:4.0.4 モジュール:mod_webapp-1.0-1 どうか宜しくお願いします。 では、失礼します。

  • tomcatとapacheを何で一緒に使いますか?

    お疲れ様です。 tomcatとapacheを何で一緒に使いますか? tomcatはjavaのjsp エンジン、apacheはphpのエンジンですね。 web サーバーとしてxampp 1.6.3a (apache+tomcat) と言う サーバーを使う事がありますが、なんでapacheとtomcatを 一緒に使いますか。javaとphpを同時に使えますか。 何をするつもりでしょうか。何でそうしますか。 お答え宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Tomcat4.1とApache2.0.44について

    Tomcat4.1とApache2.0.44を一緒に動作させています。 URLの大文字小文字の区別を無効にしたいのですが、 何か良い方法はありませんか?

  • ApacheとTomcat ポート80番について

    現在、VPSでマルチドメインで以下の2つサイトを運用しています。 1. PHPによるWordPressサイト 2. Javaによる動的サイト(静的HTML無し) Apache HTTP Server(ポート80)のバーチャルドメインを使用し、2のJavaサイトの場合はAJPでTomcat(ポート8009)へ処理を振り分けています。一般的な連携方法でと思います。 サーバーOSはCentOS5.5、IPアドレスはひとつ、ウェブサーバーにはApache HTTP Server, サーブレットコンテナとしてApache Tomcatを使用しています。root権限保持しています。 質問させていただきたいことは、Apache HTTP ServerおよびApache Tomcatを同時に起動させながらポート80番を1のサイトの場合はApache HTTPが使用、2のサイトの場合はApache Tomcatが使用できるようにする方法はご存知ないでしょうか?ということです。 現在はTomcat単独で運用する場合よりもApache HTTPを経由させるためにJavaのサイトが若干反応が遅く感じます。そもそも静的コンテンツはありませんし、URLの書き換えなども別の手段を用いているため、Apache HTTP Serverを経由する意味はどちらのサイトともブラウザでポート80番へアクセスできるようにする以外ありません。 何かよい方法ご存知ないでしょうか?なお、IPアドレスはひとつ増やしても構いません。

  • Tomcat Servletが動きません

    『Javaへの道:Tomcat』のページを参考に同じようにやってるのですが、 JSPはうまくいくのですがServletがうまくいきません。 (長文になります) 参考ページと私の環境で違う点 Windows XP Home → XP Pro Tomcat 6 → Tomcat 7 JDK6.0 → JDK6.23 ポート8080 → 8081 以下のファイル、フォルダを作りました(参考ページそのままです)。 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\jspdir\HelloJsp.jsp C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\classes\HelloServlet.class C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\web.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\javaroad.xml --↓↓HelloJsp.jspここから↓↓-- <HTML> <BODY> from JSP source<br> <%= new java.util.Date() %> </BODY> </HTML> --↑↑HelloJsp.jspここまで↑↑-- --↓↓web.xmlここから↓↓-- <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> --↑↑web.xmlここまで↑↑-- --↓↓javaroad.xmlここから↓↓-- <Context path="/javaroad" reloadable="false"/> --↑↑javaroad.xmlここまで↑↑-- JSPを起動 http://localhost:8081/javaroad/jspdir/HelloJsp.jsp → 正しく表示される Servletを起動 http://localhost:8081/javaroad/Hello → ステータス404 The requested resource (/javaroad/Hello) is not available. <気になる点> 1.Tomcatを起動するためStratボタン押しても1回では起動せず、2~3回で起動する。  1回目のときcommons-daemon.2011-01-15.logにこんなログが出る。  [2011-01-15 23:01:16] [error] Pid file 'C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7.pid' exists  [2011-01-15 23:01:16] [error] ServiceStart returned 1 2.servletクラスは正しくコンパイルできているのか 状況を詳しく説明しようとして長々と書いてしましたが Servletを表示するにはどうしたらいいでしょう? 足りない情報があれば追加します。

    • ベストアンサー
    • Java
  • ApacheとTomcatを両方使いたい

    WindowsにApacheとTomcatをインストールして、テトリスのゲームができるサーバーを構築したいのです。 Javaについて知識がないので実際にサーバーを構築した人にお聞きしたいのですが、今Apacheはインストールして、外部からホームページは見れる状態にあります。 この状態から、JDK(SE?EE)をインストールして、Tomcat6をインストールしようとしていますが、Apacheはポート80(例えば http://test.comで直接) 見れますが、Tomcatのページ.jspはhttp://test.com:8080としないと見れないのでしょうか? 後、テトリスのようにページ内で動かすには.jspで可能なのでしょうか? Java全体の知識が足りなく、質問の内容もおかしいところがありますが 教えていただけましたらうれしいです。

  • Apache1.3.27とTomcat4.0.6LEの連携

    Apache1.3.27とTomcat4.0.6LEの連携 お世話になります。 Windows XP SP3でApache1.3.27とTomcat4.0.6LEを連携しようとしています。 1.mod_jk.soをmoduleへ配置 2.apacheのconfフォルダにmod_jk.confファイルを作成 ↓内容 LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile "【Apacheインストールフォルダ】/conf/workers.properties" JkLogFile logs/mod_jk.log/ JkLogLevel warn JkMount /*.jsp worker1 JkMount /servlet/* worker1 JkMount /examples/* worker1 </IfModule> 3.apacheのconfフォルダのhttpd.confの最後に以下を追加記述 Include "【Apacheインストールフォルダ】/conf/mod_jk.conf" 4.apacheのconfフォルダにworkers.propertiesを作成し以下を記述 worker.list=worker1 worker.worker1.port=8009 worker.worker1.host=localhost worker.worker1.type=ajp13 worker.worker1.lbfactor=1 5.Tomcatを起動しApacheを起動するとDosプロンプトにて The Apache service has already been started. Note the error or messages above, and press the <ESC> key to exit. ・・・ と表示され起動できません。 apacheに対して適切なコネクタのバージョンやその設定方法等を知っている方、 何卒ご教示お願いします。

専門家に質問してみよう