みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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アドレスはひとつ増やしても構いません。

投稿日時 - 2011-05-29 23:10:30

QNo.6773144

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

「こういうことおっしゃっていますか?」
それ!

「Tomcat単独に比べると設定で少しややこしさを感じています。たとえば画像リンクへのjsessionidなどで設定が煩雑になりがち、など。」
あっ!

でも、どうしても、気になってボトルネックになりそうなところをいろいろ考えてみたんだけど、全然思いつかなくて、

とりあえず再現だ!ということで、手持ちの CentOS(on vmware) に Tomcat 入れて、Apache に AJP の設定をしようと AJP のドキュメント(*1) を眺めていたら、
(*1) http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html

あれれ?
AJP で AF_UNIX ソケットを使う設定が載ってない。
仕方ないから google で検索したけど、そもそも AJP が AF_UNIX に対応しているっていう記述がヒットしない。。。
唯一、「どうしたら設定できますか?」っていう質問がヒットしたけど回答なし。

もしかしてないの?
mod_jk2 は channelUnix あったのに。

なら、AJP つかったら遅いよね。。。

投稿日時 - 2011-06-01 18:23:52

お礼

URL Rewrite Filterで設定くらいしか思いつかないですね。http://www.tuckey.org/urlrewrite/

<outbound-rule enabled="true" encodefirst="true">
<from>(.*[png|gif|jpg|css|js|ico|swf]);jsessionid=[0-9A-Za-z]+</from>
<to>$1</to>
</outbound-rule>

Apache側のmod_rewriteなんかでできるとは思いますが、Tomcat一発運用を目指していますので使用してません。

投稿日時 - 2011-06-01 20:01:36

ANo.3

[ANo.2] でちょっと言葉がたらなかったからさせてね。

質問の目的が「80番ポートでそれぞれ起動する」のではなくて、「パフォーマンスが悪いから改善したい」と受け取ってしまったんだ。

[Apache] <--> [PHP]
なら画像ファイルは Apache が受け持つから、早いのは当然だけど、

[Apache] <--> [Tomcat]
のときは、画像ファイルまで Tomcat に任せると、Apache と Tomcat の間で、無駄なトラフィックがかかるから、アプリケーションサーバと静的ファイルを完全に分離して、画像ファイルは Apache に任せればいいかな?と思ったんだ。

と言い訳を言ってみた。。。

投稿日時 - 2011-05-31 06:40:56

お礼

レスありがとうございます。

こういうことおっしゃっていますか?

ProxyPass /images !
ProxyPass /css !
ProxyPass /js !

もしそうだったら導入していますが、Tomcat単独に比べると設定で少しややこしさを感じています。たとえば画像リンクへのjsessionidなどで設定が煩雑になりがち、など。

とにかく再度の書き込みありがとうございます。

投稿日時 - 2011-06-01 00:30:11

ANo.2

「現在はTomcat単独で運用する場合よりもApache HTTPを経由させるためにJavaのサイトが若干反応が 遅く感じます。」
体感できるほどおそいなんてふしぎ。

「そもそも静的コン テンツはありませんし、」
画像ファイルもないってこと?

それとも画像ファイルは別サーバに置いてあるのにそんなにおそいってこと?

投稿日時 - 2011-05-30 22:32:10

補足

>>体感できるほどおそいなんてふしぎ。
単独で運用していた時期があります。おっしゃる通り、体感です。遅く感じることは不思議なことでしょうか?『Tomcatハンドブック』にもデメリットとして記載があります。

>>そもそも静的コン テンツはありませんし、
誤解を招くような書き方で申し訳ございません。htmlファイルを使用していないという意味です。

投稿日時 - 2011-05-30 23:16:15

ANo.1

IPアドレス1つでは無理だと思います。

IPアドレスをもう1つ追加していいのだったら、
Apache HTTP ServerとTomcatがそれぞれ別のIPを
使うように設定すればよいと思います。

Apache HTTP Serverの場合は、httpd.confの
ListenディレクティブでバインドするIPを指定します。
(参考 http://httpd.apache.org/docs/2.0/ja/mod/mpm_common.html#listen)

Tomcatは、server.xmlのConnectorタグにaddess属性を追加して
バインドするIPを指定します。
(参考 http://www.jajakarta.org/tomcat/faq/connectors.html#bind)

投稿日時 - 2011-05-30 19:10:49

お礼

ありがとうございます。複数IPアドレスで試してみたいと思います。結果は後に報告します。

投稿日時 - 2011-05-30 23:17:17

あなたにオススメの質問