PHP Conference Japan 2024

VarnishAdmin 基本用法

此範例說明了 ban 功能的簡單用法

範例 #1 禁止網址

<?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);

?>
新增註解

使用者貢獻的註解 1 則註解

sarfraz dot qasim at gmail dot com
12 年前
安裝 PECL 後,我對程式碼進行了一些修改,使其能夠正常運作。

以下是更新後的程式碼。

<?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("連線失敗\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);

?>

希望這個對您有所幫助。
To Top