www.xyz.com
などの通常のWebサイトURLを介してTomcatアプリケーションを実行したい。このドメインのルートをWebアプリケーションのベースディレクトリとして機能させたいので、www.xyz.com/a/b/c
への各リクエストはwww.abc.com:8080/myApp/a/b/c
になります。理想的には、これを透過的に行うことができ、特定のWebアプリケーションに対してのみです。
www.abc.com:8080
は引き続き要求に応答する必要があります。
これを実現するにはどうすればよいですか?
ProxyPass / http://www.abc.com:8080/myApp/
ProxyPassReverse / http://www.abc.com:8080/myApp/
mod_proxy の詳細を読む
これを行うには、Apacheでmod_rewriteを使用できます。 Apacheにmod_rewriteをロードし、www.xyz.com vhostに次のルールを追加します。
RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1
これは魔法のようです。
Mod_rewriteについての詳細 ここ 。
[〜#〜] edit [〜#〜]:ブラウザでサイト名を保持するには、[を追加するだけでmod_proxyも使用できますP] RewriteRuleの最後に:
RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]
これにより、Apacheは単にURLを書き換えるのではなく、そのURLのプロキシとして機能するようになります。
これを行うためのより簡単な方法は、Apache confファイルに仮想ホストエントリを追加することです。通常は/ etc/httpd/confにあり、仮想ホストセクションの最後に次のように追加します。
<VirtualHost X.X.X.X:80>
ServerName tomcatpage.yourdomain.com
ServerAlias tomcatpage.yourdomain.com
Redirect permanent / http://tomcatpage.yourdomain.com:8080/
</VirtualHost>
Apacheサービスを再起動すれば完了です。