我可以在Apache VirtualHost中使用ProxyPreserveHost和RequestHeader设置主机吗?

时间:2014-04-03 16:23:21

标签: apache http-headers virtualhost mod-proxy mod-headers

我正在尝试将请求标头中的主机设置为“server2”,以便ProxyPass将请求定向到server2,但在所有其他情况下保留主机(当它将其传递给server1时)。

<Proxy "/path1">
  RequestHeader set Host server2
</Proxy>
ProxyPass         /path1  http://server2/path1
ProxyPassReverse  /path1  http://server2/path1

ProxyPreserveHost      On
ProxyPass         /    http://server1/

对于以/ path1开头的传入网址,是否有一种方法可以将ProxyPreserveHost设置为Off,但是对于所有其他网址,是否为On?或者像我在上面的代码示例中尝试的那样更改RequestHeader中的主机(这不起作用)。

我在Ubuntu 12.04上使用Apache 2.2.22版

1 个答案:

答案 0 :(得分:0)

这不是答案,但这是我问题的答案。

我决定尝试使用nginx而不是Apache 2.2,并使用这些网站可用的配置:

server {
  listen 80;

  location path1 {
    proxy_set_header Host 'server2';
    proxy_pass http://server2/path1;
  }
  location / {
    proxy_set_header Host $host;
    proxy_pass http://server1;
  }
}

我认为Apache 2.4也支持位置。所以我仍然不知道在Apache 2.2中是否可行,但这对我来说对nginx有用。