Конфигурация очистки лаком, вызывающая ошибки при запуске - PullRequest
2 голосов
/ 21 апреля 2011

У меня проблема с конфигурацией очистки в Varnish. У меня URL-адрес для очистки настроен, как показано ниже, но при попытке запустить службу я получаю сообщение об ошибке, также ниже Если я закомментирую этот кусок конфигурации, служба запускается без проблем. У кого-нибудь есть идеи, где я ошибаюсь?

Приветствие.

sub vcl_recv {
  #purge all
  if (req.request == "PURGE") {
    if (!client.ip ~ purge) {
      error 405 "Not allowed.";
    }
    if (req.url ~ "varnish/index/purgeall/key/#Fj1nzljh") {
      purge_hash( ".*" );
    }
  }

Сообщение об ошибке при запуске гласит:

user@ubuntu:/var/www$ sudo service varnish start
 * Starting HTTP accelerator varnishd                                    [fail] 
storage_file: filename: /var/lib/varnish/ubuntu/varnish_storage.bin size 1024 MB.
Message from VCC-compiler:
Expected an action, 'if', '{' or '}'
(input Line 18 Pos 7)
      purge_hash( ".*" );
------##########---------
Running VCC-compiler failed, exit 1
VCL compilation failed
mark@ubuntu:/var/www$ sudo service varnish start
 * Starting HTTP accelerator varnishd                                                                                                                                                     [fail] 
storage_file: filename: /var/lib/varnish/ubuntu/varnish_storage.bin size 1024 MB.
Message from VCC-compiler:
Expected an action, 'if', '{' or '}'
(input Line 18 Pos 7)
      purge_hash( ".*" );

Ответы [ 2 ]

1 голос
/ 30 января 2013

Правильный способ сделать это в 3.0.x примерно такой:

acl our_lan {
    "localhost";
    "10.0.0.0"/8;
    "192.168.0.0"/16;
}

sub vcl_recv {
    # ...
    if (req.request == "PURGE") {
        if (! (client.ip ~ our_lan)) {
            error 405 "Not allowed.";
        }
        return (lookup);
    }
    # ...
}

sub vcl_hit {
    if (req.request == "PURGE") {
        purge;
        error 200 "Purged.";
    }
}

sub vcl_miss {
    if (req.request == "PURGE") {
        error 200 "OK: but URL not in cache.";
    }
}

YMMV.

0 голосов
/ 03 мая 2011

purge_hash, похоже, был удален в последних версиях лака http://www.varnish -cache.org / trac / changeset / e20226fa977bb3e05d49b4e497a0b9f64ca5f272

кажется, что вы хотите очистить весь кеш, вы можете добиться этого с помощью других функций очистки

...