2016-12-14 9 views
0

Apache HTTPD 2.4を、同じサーバー上でホストされている2つの異なるアプリケーションの前に設定しようとしています。1つのドメインのホスト2アプリケーションApache HTTPD

のApp1が

mysingledomain.com:8080 

App2のは、ポート3030(ルビー[ダッシュ])に到達可能である(Tomcatの)ポート8080に到達可能である

mysingledomain.com:3030 

私が何をしたいのかmysingledomain.com/App1としてそれぞれそれらに達するありますそしてmysingledomain.com/App2

私の状況は、この質問の開始方法とよく似ています。 Host 2 Sites in HTTPD

これらはどちらもSPAアプリケーションですが、構成を分離するDocumentRootがない場合は、これを設定する方法がかなり混乱しています。

HTTPリクエストをこのような方法でフロントに設定するにはどうすればよいですか?

私は次のような構成とサブパスに付着するRubyアプリケーションを設定することができたが、これは他に影響を与えます。

<VirtualHost *:80> 
    ProxyRequests On # <---- WARNING DO NOT DO THIS 
    ProxyVia On 
    ProxyPreserveHost On 
    RewriteEngine On 

    ProxyPass "/app2" "http://192.168.0.62:3030/" retry=0 
    ProxyPassReverse "/app2/" "http://192.168.0.62/" 

    RewriteRule "^/assets/(.*)" "/app2/assets/$1" [R] 
    RewriteRule "^/views/(.*)" "/app2/views/$1" [R] 
</VirtualHost> 
+0

* * 'ProxyRequests On'を使用しないでください。これは、あなたが望むものではない順方向プロキシを可能にします。** –

+0

@ChristopherSchultzありがとう、あなたはそうですよね。 – SGM1

答えて

1

それは、このような単純なする必要があります:

<VirtualHost *:80> 
    ServerName mysingledomain.com 
    ProxyPreserveHost On 

    ProxyPass /App1/ http://127.0.0.1:8080/ 
    ProxyPassReverse /App1/ http://127.0.0.1:8080/ 

    ProxyPass /App2/ http://127.0.0.1:3030/ 
    ProxyPassReverse /App2/ http://127.0.0.1:3030/ 
</VirtualHost> 
+0

しかし、私はこのために 'RewriteCond'をセットアップしません。 'RewriteRule'はRubyアプリケーション(App2)にのみ影響します。 – SGM1

+0

あなたの質問には書き直しについては何もありません:)。正確に書き換えたいURLとは何ですか? –

+0

私は 'http://192.168.0.62:3030 /'から戻ってくる応答を書き直したいと思います。質問のリライトはそれを行いますが、問題があると思われます。レスポンスヘッダーに参照先が192.168.0.62と表示されているので、質問の逆定義を使用しなければなりませんでした。 – SGM1

関連する問題