Простое использование VarnishAdmin

Данный пример иллюстрирует простое использование функциональности запрета

Пример #1 Запретить URL

<?php

$args
= array(
VARNISH_CONFIG_HOST => "::1",
VARNISH_CONFIG_PORT => 6082,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
if(!
$va->connect()) {
throw new
VarnishException("Неудачное подключение\n");
}
} catch (
VarnishException $e) {
echo
$e->getMessage();
exit(
3);
}

try {
if(!
$va->auth()) {
throw new
VarnishException("Неудачная аутентификация\n");
}
} catch (
VarnishException $e) {
echo
$e->getMessage();
exit(
3);
}

try {
$status = $va->ban('req.url ~ "^/$"');
if (
VARNISH_STATUS_OK != $status) {
throw new
VarnishException("Метод ban вернул статус $status\n");
}
} catch (
VarnishException $e) {
echo
$e->getMessage();
exit(
3);
}

exit(
0);

?>
add a note add a note

User Contributed Notes 1 note

up
0
sarfraz dot qasim at gmail dot com
12 years ago
This code worked for me with couple of changes after installing PECL.

Here is the updated code.

<?php

$args
= array(
   
VARNISH_CONFIG_HOST    => "127.0.0.1",
   
VARNISH_CONFIG_PORT    => 6082,
   
VARNISH_CONFIG_SECRET  => "5174826b-8595-4958-aa7a-0609632ad7ca",
   
VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
    if(!
$va->connect()) {
        throw new
VarnishException("Connection failed\n");
    }  
} catch (
VarnishException $e) {
    echo
$e->getMessage();
    exit(
3);
}

try {
    if(!
$va->auth()) {
        throw new
VarnishException("Auth failed\n");
    }  
} catch (
VarnishException $e) {
    echo
$e->getMessage();
    exit(
3);
}

try {
   
$status = $va->ban('req.url ~ "^/."');
    if (
VARNISH_STATUS_OK != $status) {
        throw new
VarnishException("Ban method returned $status status\n");
    }
} catch (
VarnishException $e) {
    echo
$e->getMessage();
    exit(
3);
}

exit(
0);

?>

Hope this helps.
To Top