是否使用反向代理将两个站点放在同一个 URL 前缀下并进行合并?

是否使用反向代理将两个站点放在同一个 URL 前缀下并进行合并?

我们在 www.example.com 上有一个现有的 Web 应用程序。营销团队在 marketing.example.com 上有一个托管的 Drupal 实例。是否有反向代理解决方案可以让我从 www.example.com/marketing 提供营销内容?

我想这样做仅改变网络基础设施; IE不是更改营销网站基本 URL 配置,或向 www.example.com 添加代码。

在 Varnish 中,我可以做类似的事情:

if (req.url ~ "^/marketing/") {
  set req.host = "marketing.example.com";
  set req.url = regsub(req.url, "^/marketing/", "/");
} 

但是,marketing.example.com 提供的 HTML 包含“/blog”等绝对链接,现在需要将其更新为“/marketing/blog”。反向代理是否可以重写这些链接,但继续向营销后端请求“/blog”?

再次强调,我不想更改营销网站的配置来响应新的 URL 格式。我希望反向代理能够处理所有这些。

目前我们正在使用 Varnish,但我也愿意考虑其他解决方案。

答案1

Varnish 无法触碰和重写正在提供的内容(仅能触碰标头)。也许最新和最好的版本 (3.x) 可以使用一些 VMOD 来实现这一点,但我对此表示怀疑。

也许像 Upside-Down-Ternet 这样的设置(http://www.ex-parrot.com/~pete/upside-down-ternet.html) 与 squid 会对你有所帮助,你希望看到什么样的表现?

相关内容