清漆直接请求内部IP

时间:2018-06-12 06:37:16

标签: http-redirect varnish-4

我有像这样的哈希配置

sub vcl_init {
    new bar = directors.hash();
    bar.add_backend(server1, 1.0);
    bar.add_backend(server2, 1.0);
}

我想添加一条重写规则,如果在网址中有一个单词,则必须重定向到一个特定的内部服务器

if (req.url ~ "/newsletter" ) {
   set req.http.x-redir = "https://" + "10.1.3.4" + req.url;
   return (synth (301, req.http.x-redir));
}

但是这个规则不起作用,因为10.1.3.4是内部ip而不是DNS。有可能这样做吗?

1 个答案:

答案 0 :(得分:0)

如果请求包含简报,似乎您想使用不同的导演后端(内部服务器)。多数民众赞成可能。

实施例

sub vcl_recv {
    if (req.url ~ "^/newsletter") {
        set req.backend = newsletter;
    } else {
        set req.backend = default.
    }
}

请参阅https://varnish-cache.org/docs/3.0/tutorial/advanced_backend_servers.html

但你不能做301,那就是外部请求,而在这里我们正在讨论内部路由。