我看不出类似的问题,但如果我在重复,我会道歉.
我们正在我们的系统上运行清漆缓存,但是想要安装一个系统,我们可以在编辑时清除单个页面(相当正常).我们一直试图通过使用HTTP标头来使其工作.所以,我们的VCL设置如下:
acl purge {
"localhost";
#### Our server IP #####
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return (lookup);
}
}
sub vcl_hit {
if (req.request == "PURGE") {
purge;
}
}
sub vcl_miss {
if (req.request == "PURGE") {
purge;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然坚持如何实际发送http清除请求.我们在网站上使用PHP,所以我尝试过使用:
header("PL: PURGE / HTTP/1.0");
header("Host: url to purge");
Run Code Online (Sandbox Code Playgroud)
但这似乎没有做任何事情(varnishlog似乎没有显示任何清除).
我也尝试过cURL但是,它似乎并没有起作用.我在这里遗漏了一些非常基本的东西,还是基础声音,这意味着我的实现被窃听了?
非常感谢,
Jer*_*man 36
你需要去发一个HTTP请求.
未经测试,但应该是(如果你想使用你提到的卷曲):
$curl = curl_init("http://your.varnish.cache/url-to-purge");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PURGE");
curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)
发送 PURGE 请求的快速、肮脏和有效的方式:
curl -v -k -X PURGE URL
Run Code Online (Sandbox Code Playgroud)
您实际上可以使用该语句编写一个小脚本,如下所示:
1)打开一个编辑器,在例子VI中
vi varnish_purge_url.sh
Run Code Online (Sandbox Code Playgroud)
2) 输入以下文字:
#!/bin/sh
curl -v -k -X PURGE $1
Run Code Online (Sandbox Code Playgroud)
(记得在第一行和最后一行之间留空行)。
3) 保存文件并退出。然后设置适当的属性以从 shell 执行它:
chmod 750 varnish_purge_url.sh
Run Code Online (Sandbox Code Playgroud)
4) 在创建和使用上述脚本时,您想成为 root。如果使用 Ubuntu,请sudo在需要时随意在命令前添加。
5) 使用简单:
./varnish_purge_url.sh URL
Run Code Online (Sandbox Code Playgroud)
URL要清除的 URL在哪里。
| 归档时间: |
|
| 查看次数: |
29990 次 |
| 最近记录: |