Лак прямой запрос на внутренний ip - PullRequest
0 голосов
/ 12 июня 2018

У меня есть такая конфигурация хэша

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

Я хотел бы добавить правило перезаписи, что если в URL есть слово, оно должно перенаправляться на один конкретный внутренний сервер

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 голосов
/ 14 июня 2018

Похоже, что вы хотите использовать другой бэкэнд директора (внутренний сервер), если запрос содержит новостную рассылку.Это возможно.

Пример

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, то есть для внешнего запроса, а здесь речь идет о внутренней маршрутизации.

...