http headers - 我可以在 Apache VirtualHost 中使用 ProxyPreserveHost



我正在尝试将请求标头中的主机设置为"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 2.2.22 上使用 Apache 版本 12.04

这不是对问题的立即回答,但它是我问题的答案。

我决定尝试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 有用。

相关内容

  • 没有找到相关文章

最新更新