2012-01-23 6 views
3

Windows Server 2008マシン上で3つのTomcatインスタンスを実行しています。 1つのアプリで各1:複数のTomcatインスタンスへのアドレスの割り当て

それはDNSとTomcatの設定か何かか?

ありがとうございました。


[OK]を、私は次のことを試してみました:

のApache 2.2
  • 設定のhttpd.confロードプロキシモジュールに
  • を設定し、プロキシモジュールの設定を追加

    • ProxyRequests Off 
      ProxyPass /app1 http://machine:8081/app 
      ProxyPassReverse /app1 http://machine:8081/app 
      
      <Location "/app"> 
          Order allow,deny 
          Allow from all 
      </Location> 
      

    これで、リダイレクトはマシン内でローカルに正常に機能します。しかし、同じネットワーク内の別のマシンからアクセスしようとすると動作しません。 (この別のマシンは 'マシン'ホストにpingすることができますし、IP番号も入れてみました)。

  • 答えて

    1

    たとえば、nginx(http://nginx.org/ja/docs/)をプロキシとして使用できます。

    は、単に(などは負荷分散)を試してみてくださいません:

    server { 
    
        listen here.your.ip:80/YourApp; 
    
        location/{ 
         root /path/to/your/webapp; 
         proxy_pass http://host:8080/YourApp; 
        } 
    
    } 
    

    同じように他のポートに

    +0

    ニースの先端@Stugal

    現在地Tomcatのドキュメントを見つけることができます。私は[http://wiki.apache.org/httpd/TomcatReverseProxy](TomcatReverseProxy)]をインストールして設定しようとしています。 localhost/appからlocalhost:8080/app /にリダイレクトするように設定しましたが、このエラーが発生します: **サービスは一時的に利用できません** _メンテナンスのダウンタイムや容量の問題により、サーバーが一時的にリクエストを処理できません。後でもう一度お試しください。_ ターゲットに直接アクセスすると動作します。 google.comのような目標値を設定すると、それも機能します。 – cassioso

    +0

    ページの下部にノートがありますhttp://wiki.apache.org/httpd/TomcatReverseProxy:*デフォルトのTomcat設定では、Tomcat Managerページのリンクが壊れてしまいます。 mod_proxy_htmlで修正する方法を学んでください。*他のページにも影響する可能性があります。私は今それを確認しています。 – cassioso

    0

    を負荷分散を行うためにはApacheの背後にある複数のトムキャットを使用することが非常に一般的です。これはロードバランシングではありませんが、原則は同じです。 3つの負荷分散されたTomcatワーカーを持つ1つのアプリケーションを持つ代わりに、それぞれ1つのTomcatワーカーを持つ3つのアプリケーションがあります。 http://tomcat.apache.org/connectors-doc/

    +0

    いくつかのメモリリークの問題があるため、3つのインスタンスで1つのTomcatをインストールしています。実際には、32ビットのjv​​mで最大である1.6gのヒープ・メモリーで各インスタンスを実行しています。したがって、しばらくの間、私たちは分離されたJavaプロセスを必要とします。異なるポートに3つのインスタンスがあると、フレンドリーなラベルでそれぞれのインスタンスを設定する方法はありますか? host/app1、host/app2、host/app3? – cassioso

    +0

    3つのアプリケーションは実際には同じアプリケーションですか?これはあなたの質問から明らかではありませんでした。この場合、これは実際にロードバランシングであり、ブラウザはApacheがホストされているホスト/アプリケーションに接続するだけで、後ろのTomcatにマップします。クライアントは、どのTomcatがリクエストを処理したかを知ることはできません。アプリケーションによっては、スティッキーセッションが必要な場合があります。 – Steve

    +0

    うん、彼らは同じアプリケーションです。 5つのクライアントにサービスを提供するアプリケーションです。しかし、2人はtomcatのメモリリークを引き起こす多くのリソースを消費します。即時の解決策は、Tomcatのヒープサイズのメモリを増やしましたが、(1.6gの制限があるため)十分ではありませんでした。だから私たちは別のTomcatプロセスで巨大なクライアントを分離し、別の1.6のメモリ空間と別のポート番号で分離することにしました。しかし、新しいTomcatインスタンスにはhttp:// host:8081/app2というアドレスがあり、http:// host/app2のような1つの別名を設定したいと思っています。主な目標は、http:// host/app2 = http:// host:8081/app2です。 – cassioso

    0

    httpdに以下のコードにmod proxy configurationをお試しください:

    ProxyPass   /app0 http://localhost:8080/app0/ 
    ProxyPassReverse /app0 http://localhost:8080/app0/ 
    ProxyPass   /app1 http://localhost:8081/app1/ 
    ProxyPassReverse /app1 http://localhost:8081/app1/ 
    ProxyPass   /app2 http://localhost:8082/app2/ 
    ProxyPassReverse /app2 http://localhost:8082/app2/ 
    
    関連する問題