目前,我有Nginx在Varnish后面运行。有时,用户会发送非常长的虚假URI,这些URI会转换为Nginx 414。不幸的是,当将这些414提供给Varnish时,又将它们变成503,然后将其返回给用户。这非常令人沮丧,我更喜欢返回414来代替,因为我们监控503s并认为这些异常。让Varnish保存Nginx的414s,我该怎么办?
最佳答案
503响应在这种情况下是正确的,因为由于414,Varnish无法连接后端(在本例中为Ngnix)。
由于未发生连接,Varnish将向客户端返回503。
您可以将来自nginx的414响应保存在Varnish header 中并进行监视。
sub vcl_backend_error {
if(beresp.status == 414) {
'set the header here'
}
}
可以在sub vcl_deliver中应用相同的逻辑。
关于nginx - Nginx产生的414错误变成了Varnish的503错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563428/