web-dev-qa-db-ja.com

ポート80のTomcatWebapp

私はTomcatサーバーに次のようなWebアプリを持っています:

mydomain.com:8080/mywebapp

次に、Webアプリに接続すると、正常に機能していますが、Webアプリを次のように表示する必要があります。

mydomain.com

したがって、ポート80でTomcatだけを使用したくない、その名前でWebアプリケーションにアクセスしたくない、ドメインURIを使用して直接接続したい。

これどうやってするの?これをLinux(Ubuntu 12.04 LTS)およびWindowsサーバーで動作させたい。

10
eLRuLL

これを実現する方法はいくつかありますが、これを解決する最も一般的な方法は、Apacheをその前でリバースプロキシとして実行することです。あなたはいくつかの詳細を見つけることができます ここ 。これはLinuxとWindowsの両方で機能します。 Linuxの場合、authbindを使用してTomcatをポート80にバインドすることもできます。80でポートをserver.xmlに変更するだけでは、Linuxでは機能しません。 Tomcatをrootとして起動しますが、これはあまり良い考えではありません。

また、Webアプリを/に配置するには、warファイルをROOT.warとしてデプロイできます。

11
NilsH

特権ポート(1024未満のポート)でアプリケーションを実行するには、特別な特権が必要です。これを行う場合は、インスタンスが 適切に強化されている であることを確認する必要があります。

Tomcatがリッスンするポートを構成するには、conf/server.xmlのHTTPコネクターを変更する必要があります( サーバーリファレンスドキュメント ):

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

アプリのコンテキストパスを変更するには、warファイルの名前を変更します。ルートにデプロイするには、warファイルの名前をROOT.warに変更します。または、META-INF/context.xmlを追加して、目的のコンテキストパスを指定することもできます( コンテキスト参照ドキュメント ):

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/" />
6
ilikeorangutans

Apache Webサーバーを設定し、Tomcatを使用するように構成する必要があります。

Tomcatと通信するようにApacheWebサーバーを構成するには、mod_jkを使用する必要があります。

これを使用して linkmod_jkを設定します。