3

3つの異なるアプリケーション用に3つのTomcatインスタンスがあります。1台のマシンで8080,8081,8082ポートを使用しています。ユーザーが異なるホスト名で80ポートからアクセスできるように構成を変更するにはどうすればよいですか?マシンにApacheをインストールし、次のチュートリアルで構成しようとしました。負荷分散ポイントが開始するまで、WindowsでTomcat5.5とApacheの負荷分散を行う方法。このチュートリアルに基づいて質問があります。私のWebアプリケーションは、すべてのTomcatインスタンスのwebapps/ROOTの下にあります。私はこの構成を持っていますhttpd.conf

<IfModule jk_module>
    JkWorkersFile  D:\containters\_tomcat_backend\conf\workers.properties
    JkShmFile      D:\containters\_tomcat_backend\logs\mod_jk.shm
    JkLogFile      D:\containters\_tomcat_backend\logs\mod_jk.log
    JkLogLevel debug
    JkMount / worker1
    JkMount / worker2
</IfModule>

コマンドプロンプトからhttpd.exeを実行すると、次の警告が表示されます。

[警告]NameVirtualHost*:80にはVirtualHostsがありません

アプリケーションを80ポートで動作させる正しい方法はありますか?そして、どうすればこの警告を設定できますか?

4

1 に答える 1

2

このシナリオでは、負荷分散は必要ありません。httpd.conf で、使用するホスト名に対して 3 つの仮想ホストを定義する必要があります (ここで説明されているように)。各VirtualHostディレクティブに、 JkMount次のように worker.properties でワーカーを定義するための を挿入します。

JkMount /* worker1
...

# same for worker2 and worker3 in the other virt. hosts

次に、workers.properties について説明します。

...
worker.list = worker1, worker2, worker3

worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13

worker.worker2.port=8010
worker.worker2.host=localhost
worker.worker3.type=ajp13

worker.worker3.port=8011
worker.worker3.host=localhost
worker.worker3.type=ajp13

注意: Apache と Tomcat 間の通信はAJP経由で実行されるため、指定したポートとは異なるポートを使用します。最後に、Tomcat の各 server.xml に一致する AJP コネクタを追加します。

<Connector port="8009" protocol="AJP/1.3" />

詳しくはこちらをご覧ください。あなたが言及した警告は、不完全な仮想ホスト構成が原因のようです。VirtualHostインスタンスはまだ定義されていませんか?

編集: それほど多くの構成が気に入らない場合は、Apache をプロキシとして使用し、ProxyPass/ProxyPassReverseディレクティブを介してトラフィックを tomcat に分散することもできます。

于 2012-08-27T08:18:34.127 に答える