重定向但不改变 URL

重定向但不改变 URL

设置如下。我们有一个带有 http 虚拟集群的硬件负载平衡器。我们将其称为 example1.com。此虚拟集群在两个 Squid 反向代理之间进行负载平衡,这两个代理也位于与 Web 服务器相同的物理服务器上。Squid 监听 80 并将自身指向监听 81 的 cache_peer Web 服务器。我们还有一个独立的 Web 服务器,我们将其称为 example2.com。

我们试图在 example1.com 上创建一个名为 example1.com/example2 的子目录。这将指向 example2.com,但我们希望用户在浏览器中停留在 example1.com/example2。因此,这就像重定向,但实际上并不是重定向。我该怎么做呢?这可能吗?我正在查看 squid 文档。

  • example1.com 正在运行专有 Web 服务器 - 不是 Apache :(
  • 我们无法将 example2.com 的内容托管在 example1.com 的文件系统中。这是两个截然不同的平台。

答案1

我可能在这里漏掉了一些东西,但这听起来其实很简单。对所有与 URL 路径匹配的请求进行负载平衡^/example2/example2.comWeb 服务器。

将所有网站内容从目录根移动到Web 服务器/example2/上的子目录example2.com

答案2

我让它工作了。我重新配置了 squid 以使用 urlpath_regex acl,并将 example2.com 设置为辅助缓存对等点。然后我将 example2.com 设置为允许 /example2,但拒绝所有其他。然后对于 example1.com,我将其设置为拒绝 /example2。它按预期工作。以下是配置文件的样子。

acl 重定向 urlpath_regex ^/example2*

cache_peer example1.com 父级 81 0 无查询原始服务器名称=server1
cache_peer example2.com 父级 80 0 无查询原始服务器名称=server2

cache_peer_access server1 拒绝重定向
cache_peer_access server2 允许重定向
cache_peer_access server2 全部拒绝

如果我访问 example1.com/example2,它会从 example2.com 提取内容,但 example1.com URL 仍保留在浏览器中。

相关内容