【问题标题】:Varnish - redirect a request to another website/webserverVarnish - 将请求重定向到另一个网站/网络服务器
【发布时间】:2021-11-07 05:08:05
【问题描述】:

当您输入https://website.com/site 时,我希望将用户重定向到 http://ip:port,因为“/site”在 url 中。

if (req.url  ~ "/site.*$"){

   set url = regsub(req.url, "site", "");
   set req.http.host = "ip:port";
   return (pass)

}

【问题讨论】:

  • redirected 如同返回 301,302,307,308 HTTP 响应客户端或代理客户端对这个ip:port 的请求?
  • 是的。目前,当我在浏览器中输入ip:port 时,网站会弹出来就好了。因此,当在浏览器中输入website.com/site 时,我希望我的清漆代理能够将网址重定向或重写为ip:port。 “网站”是清漆

标签: redirect varnish varnish-vcl


【解决方案1】:

有关如何在 Varnish 中执行 HTTP 重定向的教程,请参阅 https://www.varnish-software.com/developers/tutorials/redirect/

以下是相关的 VCL 示例:

vcl 4.1;

backend default {
    .host = "127.0.0.1";
    .port = 8080;
}

sub vcl_recv {
    if(req.url == "/external") {
        return(synth(301,"https://external.example.com/"));
    }
}

sub vcl_synth {
    if (resp.status == 301) {
        set resp.http.location = resp.reason;
        set resp.reason = "Moved";
        return (deliver);
    }
}

请更改 URL 匹配逻辑并相应更新重定向端点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2021-11-20
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    相关资源
    最近更新 更多