如何在 haproxy 级别重定向请求以从 CDN 获取文件?

Bla*_*man 5 haproxy

对于给定的 url 模式,我希望从 CDN 而不是从我的 Web 服务器获取文件的内容。

例子:

www.example.com/some/path/ford/new?a=1&b=2
Run Code Online (Sandbox Code Playgroud)

我需要提取:

福特新 1 2

我想从 s3(或 CDN)中获取文件,例如:

example-com.s3.com/customers/ford.new.1.2.html
Run Code Online (Sandbox Code Playgroud)

这在 HAProxy 级别是可能的,还是我必须以某种方式在 nginx 中执行此操作?

管道中越早越好。

Wil*_*eau 0

我记得曾经处理过类似的事情,我相信原则如下:

1) 从前端,使用 ACL 匹配 URL 并转到特定后端 2) 在此后端中,首先使用 reqirep 重写 URL 3) 然后使用“redirect ... prefix /”执行重定向,这将重用相同的 URL 。

但是,在您的情况下,我看到一个主机名,并且该主机名不是 URI 行的一部分,因此不可能让它出现在那里(尚不可能合并两行)。但也许您不需要那么多主机并且可以接受一些规则?