• 締切済み

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

みんなの回答

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.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 つかったら遅いよね。。。

wonder_tomokane
質問者

お礼

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一発運用を目指していますので使用してません。

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.3

[ANo.2] でちょっと言葉がたらなかったからさせてね。 質問の目的が「80番ポートでそれぞれ起動する」のではなくて、「パフォーマンスが悪いから改善したい」と受け取ってしまったんだ。 [Apache] <--> [PHP] なら画像ファイルは Apache が受け持つから、早いのは当然だけど、 [Apache] <--> [Tomcat] のときは、画像ファイルまで Tomcat に任せると、Apache と Tomcat の間で、無駄なトラフィックがかかるから、アプリケーションサーバと静的ファイルを完全に分離して、画像ファイルは Apache に任せればいいかな?と思ったんだ。 と言い訳を言ってみた。。。

wonder_tomokane
質問者

お礼

レスありがとうございます。 こういうことおっしゃっていますか? ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! もしそうだったら導入していますが、Tomcat単独に比べると設定で少しややこしさを感じています。たとえば画像リンクへのjsessionidなどで設定が煩雑になりがち、など。 とにかく再度の書き込みありがとうございます。

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

「現在はTomcat単独で運用する場合よりもApache HTTPを経由させるためにJavaのサイトが若干反応が 遅く感じます。」 体感できるほどおそいなんてふしぎ。 「そもそも静的コン テンツはありませんし、」 画像ファイルもないってこと? それとも画像ファイルは別サーバに置いてあるのにそんなにおそいってこと?

wonder_tomokane
質問者

補足

>>体感できるほどおそいなんてふしぎ。 単独で運用していた時期があります。おっしゃる通り、体感です。遅く感じることは不思議なことでしょうか?『Tomcatハンドブック』にもデメリットとして記載があります。 >>そもそも静的コン テンツはありませんし、 誤解を招くような書き方で申し訳ございません。htmlファイルを使用していないという意味です。

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.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)

wonder_tomokane
質問者

お礼

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

関連するQ&A

  • apacheとtomcatについて

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

  • tomcat apacheが使用するポート番号

    tomcatやapacheが使用する全ポート番号を知る方法を知っている方は教えて下さい。 tomcatの接続先であるデフォルトの8080といったポート以外にも 例えば、tomcatやapacheの起動時に一時的に使用するポート番号が知りたいです。

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

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

    • ベストアンサー
    • Java
  • ApacheとTomcat

    最近サーブレットの勉強を始めた。 webサーバにTomcatを使う、 またはTomcatとApacheを連携させて使う例しか見当たらなかったのですが、 サーバマシンにJ2EEを置き、Apache単体で動作させるということはできないのでしょうか? また、調べていくうちにTomcatはApacheと同じプロジェクト(?)というか、 同じところが開発しているように感じました。 単純にTomcatは「ApacheにJavaによるサーバサイドのプログラムが動くようにしたもの」 というわけではないみたいですが、どうなのでしょう? Apacheを改造してサーブレットを動くようにすればよかったのでは?と思うのですが、 そのへんの歴史的背景というか、 それぞれのできあがった背景みたいなものを簡単にでも解説頂けると幸いです。

    • ベストアンサー
    • Java
  • Tomcatの8080ポートを閉じると起動しない

    TomcatをApache Web Serverと連携させたためTomcatの8080ポートを閉じようと思いました。 そこでserver.xmlの <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> の部分をコメントアウトしました。 Eclipse上にて作成したサーバーでTomcatを起動したところ 「サーバーローカルホストのTomcatV7.0サーバーは45秒以内に始動できませんでした。 サーバーがより多くの時間を必要とする場合、サーバー・エディタでタイムアウトを大きくしてください」 というエラーメッセージがでてしまいました。 コメントアウトを外すとサーバーは起動しました。 Tomcat6でも同様のことが起きたのですが8080ポートの閉じ方に問題があるのでしょうか。

  • ApacheとTomcatを両方使いたい

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

  • ひとつのグローバールIPで2台目のサーバー設置について(ポート等)

    こんにちは。サーバーを立ち上げたいと考え、いろいろ書籍を見て勉強しているのですが、分からない点があり質問いたします。よろしくお願い致します。 ◆環境 グローバルIPを取得しており、ブロードバンドルータを経由してサーバーPC(XP)を運用したく考えております。WebサーバーソフトはApacheを利用する予定です。LAN側での固定IPの設定は出来ています。ただし、現在これとは別に、同じルータを経由して別のサーバーが運用されていると言う状況です。 ◆使用ポートについて 通常、Webサーバーポートは80を使用すると理解しております。ですが、既存サーバーでルーターLAN側80を既に使用しています。この場合でも、新しいサーバーに対しプライベートIP+ポート80と言う設定をルータで行うことにより解決するものなのでしょうか? また、その場合ルータのWAN側ポートは80はすでに使用されていますので、8080等の別ポートを使用する必要があると理解しています。つまり、クライアントからは、グローバルIP+ポート8080でアクセスし、それをルータでプライベートIP(固定)+ポート80に変換されるという考えであっていますでしょうか? ◆ドメインネームについて 基本的なことかと思いますが、そもそもルータをかませた場合のドメインネームによるアクセス方法というのが理解できていません。Apacheではインストール時にドメインネームを入力しますが、このドメインネームにより外部からアクセスできるのでしょうか? 私が想像するには、外部からは、​http://342.464.985.341:8080/​のようにグローバルIP+ルータ外部ポートにより、ルータを経由してサーバーに達するものと考えていますが、ルーターの分配先のひとつでしかないLAN内のサーバーにドメインネームを付けたところで、そのドメインネームで外部からアクセスできるとは思えません。 何か認識が間違っているでしょうか? もしかするとカテ違いなのかも知れませんが、アドバイス頂ければ幸いです。よろしくお願い致します。

  • ひとつの物理PC上でApacheとIISを80番ポートで動かすには?

    ひとつの物理PC上で、ApacheとIISを同じ80番ポートで運用したいのですが、 下記のような方法は可能でしょうか? *ホスト名、IPは別々でもOK。 1.NIC2枚挿し(ポート80番は1枚毎に待てる?) 2.NIC1枚でVirtualPCを2つ同時に起動してそれぞれに立てる 可能かどうか、と、気をつけるべき点など、ご教授頂きたいです。

  • [apache+tomcat]なぜ!?実行したらトムキャットが落ちる!?

    こんにちわ♪ アパッチとトムキャットを使ってJavaシステムを構築しています。 昨日まで順調に動いていたユーザ認証のプログラムが、本日リカバリーして 実行しますと、サーブレットの処理がうまくいかず、トムキャットは閉じ、 IEには「Internal Server Error」と表示されてしまいます。 アパッチはSTOPにはなっていないようです。 このような現象はどういうときに発生しますか? アパッチとトムキャットの連携設定にミスがあるのでしょうか??

    • ベストアンサー
    • Java
  • tomcat アクセスエラー

    tomcat webサーバにアクセスする際に以下の条件で、 タイムアウトによりアクセスできません。 【apacheまたはtomcat(ポート8080)画面が見える条件】 (rootユーザ) http://localhost/ http://(ip or ドメイン)/ http://localhost:8080/ (一般ユーザ) http://localhost/ http://(ip or ドメイン)/ http://localhost:8080/ http://(ip or ドメイン):8080/ 【apacheまたはtomcat画面が見えない条件】 (rootユーザ) http://(ip or ドメイン):8080/ 何か原因など考えられますでしょうか? よろしければご教授ください。 よろしくお願いいたします。