![如何在 haproxy 级别重定向请求以从 CDN 获取文件?](https://linux22.com/image/544253/%E5%A6%82%E4%BD%95%E5%9C%A8%20haproxy%20%E7%BA%A7%E5%88%AB%E9%87%8D%E5%AE%9A%E5%90%91%E8%AF%B7%E6%B1%82%E4%BB%A5%E4%BB%8E%20CDN%20%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%EF%BC%9F.png)
对于给定的 url 模式,我希望从 CDN 而不是从我的 Web 服务器获取文件的内容。
例子:
www.example.com/some/path/ford/new?a=1&b=2
我需要提取:
福特 新 1 2
我想要从 s3(或者 CDN)获取文件,例如:
example-com.s3.com/customers/ford.new.1.2.html
这在 HAProxy 级别是否可行或者我是否必须以某种方式在 nginx 中执行此操作?
显然,越早进入管道越好。
答案1
我记得曾经处理过类似的事情,我相信其原则如下:
1) 从前端,使用 ACL 匹配 URL 并转到特定后端 2) 在此后端首先使用 reqirep 重写 URL 3) 然后使用“redirect ... prefix /”执行重定向,这将重用相同的 URL。
但是,在您的情况下,我看到了一个主机名,而主机名不是 URI 行的一部分,因此无法使其出现在那里(目前还无法合并两行)。但也许您不需要那么多主机,并且可以遵守一些规则?