web-dev-qa-db-ja.com

Apacheリクエスト(ポート80)をTomcat(ポート8080)に転送しますか?

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は引き続き要求に応答する必要があります。

これを実現するにはどうすればよいですか?

8
Stefan Kendall
ProxyPass        / http://www.abc.com:8080/myApp/
ProxyPassReverse / http://www.abc.com:8080/myApp/

mod_proxy の詳細を読む

14
ptman

これを行うには、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のプロキシとして機能するようになります。

3
Marco Ramos

これを行うためのより簡単な方法は、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サービスを再起動すれば完了です。

3
ebischoff