我们在 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 会对你有所帮助,你希望看到什么样的表现?