2

我正在尝试将请求标头中的主机设置为“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/

有没有办法让 ProxyPreserveHost 为以 /path1 开头的传入 url 关闭,但为所有其他 url 开启它?或者像我在上面的代码示例中尝试的那样更改 RequestHeader 中的主机(这不起作用)。

我在 Ubuntu 12.04 上使用 Apache 版本 2.2.22

4

1 回答 1

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。

于 2014-04-05T20:54:11.990 回答