- 締切済み
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アドレスはひとつ増やしても構いません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- dscripty
- ベストアンサー率51% (166/325)
「こういうことおっしゃっていますか?」 それ! 「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 つかったら遅いよね。。。
- dscripty
- ベストアンサー率51% (166/325)
[ANo.2] でちょっと言葉がたらなかったからさせてね。 質問の目的が「80番ポートでそれぞれ起動する」のではなくて、「パフォーマンスが悪いから改善したい」と受け取ってしまったんだ。 [Apache] <--> [PHP] なら画像ファイルは Apache が受け持つから、早いのは当然だけど、 [Apache] <--> [Tomcat] のときは、画像ファイルまで Tomcat に任せると、Apache と Tomcat の間で、無駄なトラフィックがかかるから、アプリケーションサーバと静的ファイルを完全に分離して、画像ファイルは Apache に任せればいいかな?と思ったんだ。 と言い訳を言ってみた。。。
お礼
レスありがとうございます。 こういうことおっしゃっていますか? ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! もしそうだったら導入していますが、Tomcat単独に比べると設定で少しややこしさを感じています。たとえば画像リンクへのjsessionidなどで設定が煩雑になりがち、など。 とにかく再度の書き込みありがとうございます。
- dscripty
- ベストアンサー率51% (166/325)
「現在はTomcat単独で運用する場合よりもApache HTTPを経由させるためにJavaのサイトが若干反応が 遅く感じます。」 体感できるほどおそいなんてふしぎ。 「そもそも静的コン テンツはありませんし、」 画像ファイルもないってこと? それとも画像ファイルは別サーバに置いてあるのにそんなにおそいってこと?
補足
>>体感できるほどおそいなんてふしぎ。 単独で運用していた時期があります。おっしゃる通り、体感です。遅く感じることは不思議なことでしょうか?『Tomcatハンドブック』にもデメリットとして記載があります。 >>そもそも静的コン テンツはありませんし、 誤解を招くような書き方で申し訳ございません。htmlファイルを使用していないという意味です。
- Lchan0211
- ベストアンサー率64% (239/371)
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)
お礼
ありがとうございます。複数IPアドレスで試してみたいと思います。結果は後に報告します。
お礼
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一発運用を目指していますので使用してません。