- - PR -
Apache1.3.33とTomcat5.5.7の連携についてご質問
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-05-13 18:17
いつもお世話になっております。
Linuxサーバーはまだ経験がほとんどないのですが Javaを使ったWebページを作成したくて現在サーバー の設定を行っております。 Tomcatは単体でWebサーバーの機能はあるようですが 処理の負荷分散をしたほうがよいとのお話がいろいろ なページで紹介されていましたのでApacheと連携しよ うと考えております。 連携時に疑問がありまして質問させていただきました。 Apacheでは/var/wwwというディレクトリをルートにして おります。 Tomcatは/usr/local/tomcat/webappsというディレク トリがデフォルトでルートになっておりました。 /usr/local/apache/conf/workers.propertiesにて [uri:/jsp-examples/*]としたところ http://IPアドレス/jsp-examples/index.htmlでApache 経由でTomcatの/usr/local/tomcat/webapps/index.html がうまく表示されJSPも動いているようでした。 既存のサンプルのページはうまく表示されたので自分で/usr/ local/tomcat/webapps/testというディレクトリを作成しtest.jsp というファイルを設置しました。 /usr/local/apache/conf/workers.propertiesに [uri:/test/*]という行を追加して Apache、Tomcatを再起動して http://IPアドレス/test/test.jsp とアクセスしてみたのですが404のエラーが表示されうまくいきません でした。 なにか他にも設定ファイルにかかなければならないのかなと調べてみ たのですが原因がわかりませんでした。 それとhtmlファイルとjspファイルを混在させたい場合のディレクトリの 構成がどのようにすればよいのかなと悩んでおります。 画像ファイルなどを指定するときは相対パスでの指定は可能でしょうか? 文章がわかりづらくて申し訳ございません。 どなたかご教授お願い致します。 |
|
投稿日時: 2005-05-16 17:41
/usr/local/apache/conf/workers2.properties
に加えて /usr/local/tomcat/conf/server.xml を編集を行ったところうまく自作ディレクトリに格納したJSPが 動いてくれました。 具体的には<HOST>〜</HOST>の間に次の一行をいれただけです。 <Context path="/test" docBase="test" debug="0" reloadable="true"/> 画像ファイルなどの置き場所なのですが、まだどのようにするのが よいのか迷っております。 TomcatのルートとApacheのルートがそれぞれ /usr/local/tomcat/webapps/ /var/www/ と別れていますのでHTMLとJSPを混在させたい場合に両方から使用する画像などを 相対的に指定するのは難しいのではないかな思うのですがよい方法はございます でしょうか?フルパスで指定するしかないのでしょうか? どなたかご教授お願いいたします。 |
|
投稿日時: 2005-05-16 20:24
ディレクトリ構成ですが、双方のドキュメントルートを合わせる、というのはナシでしょうか。
ApacheとTomcatを同一サーバで動作させるのであれば、その方がわかりやすいので 私はよくそうしています。 ただし、動きが完全に理解できないうちから安易に一緒にするのはお奨めしませんが。。。 さて、画像の配置場所ですが、 これがApacheから返したいものであればApacheのドキュメントルート以下に、 Tomcatから返したいのであればTomcatのドキュメントルート以下に置くべきだと思います。 それぞれの違いですが、 Apacheから返すとパフォーマンス的に有利です。 Tomcatから返すと、管理上がしやすい場合があるかもしれません。 ※Tomcatで返すのは、JSPでしか使わない画像がある場合がほとんどです。 同じサーバならあまり気にはなりませんが、別サーバにするような場合は 管理上、JSPと同じサーバに入れておいた方がわかりやすいのでそうしています。 今回はApacheでもTomcatでもその画像を使うということなので Apacheのドキュメントルート以下で良いと思います。 ドキュメントルートの考え方がしっくりきていないようですが、 ユーザからのリクエストがworkers.propetiesの表現に一致するときは、/usr/local/tomcat/webapps/test以下が参照され、 一致しないときは/var/www以下が参照される、ただそれだけのことです。 これを踏まえれば、相対パスを書くことができるかと思います。 つまり、http://x.x.x.x/test/test.jspから/var/www/image/img.jpgを参照したいのであれば、<IMG src="../image/img.jpg">と書けば良いです。 もし、test.jspから/var/www/test/image/img.jpgを参照させたければ、workers.propertiesの中身を [uri:/test/*.jsp] とでも変える必要があります。 クライアントはHTTP通信で取得したhtmlデータが、HTMLファイルから返されたのか、JSPから返されたのかは判断できませんし、そもそも画像の取得はhtmlデータ取得のHTTP通信とは別の通信になるので、HTMLもJSPも関係ありません。 JSPから、Apacheのドキュメントルートに置いているHTMLファイルをインクルードする場合のパスをどう書くか、といったような場合は話が変わってきますが、それはまたそのときに調べてください。 |
|
投稿日時: 2005-05-17 16:57
komey様
すごくわかりやすいご説明ほんとにありがとうございます! Tomcatは初めてでまだ動作がよく理解できていなかったのですが 文章を読んでだいぶ理解できました^^ 画像は教えていただいた/var/www/imageに配置しようと思います。 よく考えてみたのですが、アクセスがあった場合、一度Apache、Tomcat がHTMLのテキストをクライアントのブラウザに送ってブラウザがそれ を解析してイメージのタグがあった場合に再度、リクエストにいくよう な形になっているのですね。 http://xx.x.x/test/test.jspでTomcatが返したHTMLの文の中に ../image/img.jpgとあったらブラウザがhttp://xx.x.x/image/img.jpg に再度リクエストにいってそれを今度はApacheがworkers.propetiesの パターンにマッチしていないので返してくれるというような考え方で大丈夫 でしょうか。。 ApacheとTomcatに慣れてきたらkomey様のおっしゃられた双方のドキュメント ルート合わせるやりかたにチャレンジしてみたいと思います^^ |
1