Apache Mod_代理-一台服务器上有多个站点

Apache Mod_代理-一台服务器上有多个站点,apache,cross-domain,reverse-proxy,mod-proxy,Apache,Cross Domain,Reverse Proxy,Mod Proxy,我正在建设一个高度依赖跨域RESTAPI调用的HTML5站点。为了解决与CORS相关的问题,我设置了反向代理来指向RESTAPI。不幸的是,我遇到了一些问题,我被卡住了,我不太熟悉Apache配置 请在此处查看我的网站设置: 基本上,我的问题是: ui.site.com/api1从api1.serv.com返回数据(这是预期的) ui.site.com/api2从api1.serv.com返回数据(这是不正确的,它应该来自api2.serv.com) ui.site.com/api3从api1

我正在建设一个高度依赖跨域RESTAPI调用的HTML5站点。为了解决与CORS相关的问题,我设置了反向代理来指向RESTAPI。不幸的是,我遇到了一些问题,我被卡住了,我不太熟悉Apache配置

请在此处查看我的网站设置:

基本上,我的问题是:

  • ui.site.com/api1从api1.serv.com返回数据(这是预期的)
  • ui.site.com/api2从api1.serv.com返回数据(这是不正确的,它应该来自api2.serv.com)
  • ui.site.com/api3从api1.serv.com返回数据(同样不正确,它应该来自api3.serv.com)
这是怎么回事?apache是否不能很好地处理对一台服务器上运行多个站点的代理调用?我似乎找不到这方面的任何资源,也找不到任何有同样问题的人

代码如下 服务器1:JavaScript前端

# Apache Virtual Host
ProxyPreserveHost On
SSLProxyEngine On

ProxyPass /api1 https://api1.serv.com
ProxyPassReverse /api1 https://api1.serv.com

ProxyPass /api2 https://api2.serv.com
ProxyPassReverse /api2 https://api2.serv.com

... #repeat above for  api3
服务器2:其余的应用程序,每一个都是它自己的站点

<Virtualhost *:443>
    ServerName api1.serv.com
    ServerAlias api1.serv.com
    .... #other directives...
</VirtualHost>

<Virtualhost *:443>
    ServerName api2.serv.com
    ServerAlias api2.serv.com
    .... #other directives...
</VirtualHost>

.... #Repeat for api3.serv.com

ServerName api1.serv.com
ServerAlias api1.serv.com
.... #其他指令。。。
ServerName api2.serv.com
ServerAlias api2.serv.com
.... #其他指令。。。
.... #对api3.serv.com重复上述步骤

您能解决这个问题吗?不,我们最终采用了一种不涉及反向代理的不同方法。相反,我们创建了自己的定制代理来充当中间人。