来自Nginx的414错误在Varnish中变成503错误

时间:2016-01-02 06:51:04

标签: nginx varnish

我目前有Nginx在Varnish背后运行。偶尔用户会发送非常长的虚假URI,这会转换为Nginx 414。不幸的是,当这些414被送到Varnish时,它们会变成503s,然后返回给用户。这非常令人沮丧,我更愿意返回414,因为我们监控503并考虑这些意外。我怎样才能让Varnish保留来自Nginx的414s?

1 个答案:

答案 0 :(得分:0)

在这种情况下,503响应是正确的,因为由于414s,Varnish无法连接后端(在这种情况下是Ngnix)。 Varnish将返回503给客户端,因为连接没有发生。 您可以将这些来自nginx的414响应保存在Varnish标头中并监控它们。

sub vcl_backend_error {
    if(beresp.status == 414) {
      'set the header here'
    }
}

可以在sub vcl_deliver中应用相同的逻辑。