背景:
我们的网络结构将所有流量引入Varnish安装,然后根据先前管理员设置的规则将流量移植到5个不同的Web服务器之一。我对Varnish没有多少经验。
昨晚我们被特定文件的请求轰炸了。此文件是我们限制为特定服务器集的文件,并且由于原因,它直接链接到我们的主数据库。显然,这不是最佳选择,因此我们的网站受到了很大的打击。我试图做的并且失败的是在Varnish VCL中编写一个代码块,该代码块会对该文件的每个请求返回500响应,然后我可以在攻击期结束后将其注释掉。
问题:
那句法是什么?我已经完成了我的谷歌搜索,但在这一点上,我认为事实是我对Varnish不够了解能够正确地说出我的搜索,所以我找不到我需要的信息。
答案 0 :(得分:4)
您可以在配置中的任何其他vcl_recv
之前定义自己的vcl_recv
,重新加载Varnish,然后您应该获得您正在寻找的行为。
sub vcl_recv {
if (req.url ~ "^/path/to/file(\?.*)?$") {
return (synth(500, "Internal Server Error"));
}
}