url - 使用 Varnish 更改后端的 url 而不是客户端的 url

标签 url varnish varnish-vcl

我想将客户端 url "www.example.com/download.."操作为 "one.other.com/download..."
但我希望客户端上的 url 保持第一个“www.example.com/download”

Varnish 3 有没有办法做到这一点?

最佳答案

是的,您可以使用 regsub() 轻松完成此操作。 VCL 中的函数 vcl_recv .

例如:

if (req.http.host ~ "^(www\.)?example\.com" && req.url~ "^/download/") {
  set req.http.host = "one.other.com";
  set req.url = regsub(req.url, "^/download/", "/");
} 

此示例重写了对 http://www.example.com/download/example.jpg 的访问权限至 http://one.other.com/example.jpg .当然,它对用户是不可见的。

关于url - 使用 Varnish 更改后端的 url 而不是客户端的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878877/

相关文章:

Magento 多语言商店与 Varnish

caching - Varnish 4以从具有不同内容的多台服务器缓存

java - 如何从 .jar 加载文件夹?

Java 无法识别以 "file:/"开头的文件

linux - 启动 Varnish 缓存 : [FAILED] . .. 如何调试 Varnish ?

php - laravel 中用于缓存的 varnish 等效包

ruby-on-rails - 在 Rails 的 URL 中将 "%20"替换为 "-"

url - MOD_REWRITE 规则无法忽略变量

caching - Varnish :即使请求或响应 header 中存在某些 cookie 也会缓存

drupal - 多站点Drupal的Varnish VCL配置?