Apache 虚拟主机重定向到其他服务器

Apache 虚拟主机重定向到其他服务器

情况如下:

服务器 A 托管“http://internal.intranet

服务器 B 托管内部应用程序“http://服务器名称b.intranet/foo/bar

服务器 A 需要将所有传入的 http 流量重定向到服务器 B 的地址,而用户不会注意到。

我可以使用以下配置文件轻松完成此操作:

<VirtualHost 10.0.4.26>
  ServerName internal.intranet
  ServerAlias internal

  RewriteEngine on

  # Deny TRACE/TRACK request methods
  RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
  RewriteRule .* - [F]

  #RewriteRule "^/files(.*)$" "/files$1" [L]

  # Everything else not matched above needs to go to the servlet container
  # via HTTP listening on port 8008. The [P] flag (which is required)
  # implies that our requests will be handled by mod_proxy.
  RewriteRule "^/(.*)" "http://servernameb.intranet:8080/foo/bar/$1" [P]
</VirtualHost>

但问题是用户浏览器中显示的url是:http://服务器名称b.intranet..... 代替http://internal.intranet

我不希望用户接触servernameb地址。

我知道我可能需要使用 ProxyPass 和 ProxyPassReverse 但我就是无法让它工作。

答案1

您应该尝试以下操作:

<VirtualHost 10.0.4.26>
  ServerName internal.intranet
  ServerAlias internal

  ProxyPass        /  http://servernameb.intranet/foo/bar/
  ProxyPassReverse /  http://servernameb.intranet/foo/bar/
</VirtualHost>

相关内容