Apache VirtualHost 指令 ProxyPass

Apache VirtualHost directive ProxyPass

我想使用 Apache 作为托管在不同机器上的两个不同站点的代理。我目前 运行 Apache 2.2.15.

我要实现的是:

 Client --> https://ApacheWebProxyPubIP:443
        --> /Url1.php --> http://10.0.0.2/Url1.php
        --> /Url2 --> http://10.0.0.3/Url2

我尝试使用:

     VirtualHost default:443
         ServerName something.nice.org
         ProxyPass /Url1.php http://10.0.0.2/Url1.php
         ProxyPassReverse /Url1.php http://10.0.0.2/Url1.php
     VirtualHost
     VirtualHost *:443
         ServerName somethingelse.nice.org
         ProxyPass /Url2 http://10.0.0.3/Url2
         ProxyPassReverse /Url2 http://10.0.0.3/Url2
     VirtualHost *:443
     

/Url1.php 到 http://10.0.0.2/Url1.php 工作正常但 Url2 没有转发到 10.0.0.3。

实现此目的的正确语法是什么?

谢谢!

在你的 <VirtualHost> 指令中试试这个:

     ServerName something.nice.org
     ServerAlias somethingelse.nice.org

     ProxyPass /Url1.php http://10.0.0.2/Url1.php
     ProxyPassReverse /Url1.php http://10.0.0.2/Url1.php

     ProxyPass /Url2 http://10.0.0.3/Url2
     ProxyPassReverse /Url2 http://10.0.0.3/Url2

使用

ProxyPreserveHost On

指令。 告诉转发服务器保留主机名(由客户端转发)。