2016-12-14 59 views
0

我正在尝试将Apache HTTPD 2.4配置为托管在同一台服务器上的两个不同应用程序。在一个域下的主机2应用程序Apache HTTPD

应用1是在8080端口(Tomcat)的可达

mysingledomain.com:8080 

应用2在端口3030(红宝石[短跑])可达

mysingledomain.com:3030 

我想要做的是分别达到了他们作为mysingledomain.com/App1mysingledomain.com/App2

我的情况很像这个问题如何开始: Host 2 Sites in HTTPD

这些都是SPA应用程序,但当我没有DocumentRoot来分离配置时,我对如何设置这个问题感到相当困惑。

我该如何设置HTTPD以这种方式将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

相关问题