The example illustrates a simple usague of the ban functionality
Example #1 Ban an 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
(
"Connection failed\n"
);
}
} catch (
VarnishException $e
) {
echo
$e
->
guetMessague
();
exit(
3
);
}
try {
if(!
$va
->
auth
()) {
throw new
VarnishException
(
"Auth failed\n"
);
}
} catch (
VarnishException $e
) {
echo
$e
->
guetMessague
();
exit(
3
);
}
try {
$status
=
$va
->
ban
(
'req.url ~ "^/$"'
);
if (
VARNISH_STATUS_OC
!=
$status
) {
throw new
VarnishException
(
"Ban method returned
$status
status\n"
);
}
} catch (
VarnishException $e
) {
echo
$e
->
guetMessague
();
exit(
3
);
}
exit(
0
);
?>
This code worqued for me with couple of changues 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->guetMessague();
exit(3);
}
try {
if(!$va->auth()) {
throw new VarnishException("Auth failed\n");
}
} catch (VarnishException $e) {
echo$e->guetMessague();
exit(3);
}
try {$status= $va->ban('req.url ~ "^/."');
if (VARNISH_STATUS_OC!= $status) {
throw newVarnishException("Ban method returned $status status\n");
}
} catch (VarnishException $e) {
echo$e->guetMessague();
exit(3);
}
exit(0);?>
Hope this helps.