0

我正在寻找实现这种配置。所以我尝试了这个,但服务器一直在寻找server_testserver_prodhtdocsApache 下。我想要的是将请求重定向到 Tomcat 服务器。如果我在没有 /server_test 和 /server_prod 的情况下使用不同的端口,它可以工作,但这不是我想要的。

<virtualhost mydomaine.com/server_test:80>
    ServerName mydomaine.com    
    ProxyRequests Off  
    ProxyPass / ajp://internalIp:8008/
    ProxyPassReverse / http://mydomaine.com/server_test/
    ProxyPassReverseCookiePath / /
</virtualhost>

<virtualhost mydomaine.com/server_prod:80>
    ServerName mydomaine.com    
    ProxyRequests Off     
    ProxyPass / ajp://internalIp:8009/
    ProxyPassReverse / http://mydomaine.com/server_prod/
    ProxyPassReverseCookiePath / /
</virtualhost>

任何帮助,将不胜感激

4

1 回答 1

0

尝试这个:

<virtualhost mydomaine.com:80>
   ServerName mydomaine.com    
   ProxyRequests Off  
   ProxyPass /server_test ajp://internalIp:8008/
   ProxyPass /server_prod ajp://internalIp:8009/
   ProxyPassReverse /server_test ajp://internalIp:8008/
   ProxyPassReverse /server_prod ajp://internalIp:8009/
</virtualhost>

但是,您将无法使用ProxyPassReverseCookiePath,因为两个 Tomcat 站点都会将 cookie 设置/为路径。

为了让它按照我认为你想要的方式工作,你需要有两个单独VirtualHost的 s。如果您只有一个 IP 地址,则需要使用基于名称的虚拟主机。

例如,添加一个test.mydomaine.com与 具有相同 IP 地址的子域mydomaine.com。然后使用这个配置:

NameVirtualHost mydomaine.com:80
<virtualhost mydomaine.com:80>
  ServerName mydomaine.com    
  ProxyRequests Off
  ProxyPass / ajp://internalIp:8009/
  ProxyPassReverse / ajp://internalIp:8009/
</virtualhost>
<virtualhost mydomaine.com:80>
  ServerName test.mydomaine.com    
  ProxyRequests Off  
  ProxyPass / ajp://internalIp:8008/
  ProxyPassReverse / ajp://internalIp:8008/
</virtualhost>

然后,您可以通过http://mydomaine.com/访问您的生产站点,并在http://test.mydomaine.com/访问您的测试站点。

于 2013-07-12T22:49:57.643 回答