Aumenta o tempo limite do verniz para um caminho específico

6

Eu tenho um conjunto de scripts no caminho / admin que pode demorar um pouco para ser executado e fazer com que o verniz atinja o limite de tempo limite. Existe uma maneira de aumentar os tempos limite de um determinado caminho em vez de um back-end inteiro?

    
por LS55321 17.01.2012 / 16:56

4 respostas

9

Você pode tentar adicionar mais um back-end com o mesmo host, mas diferentes tempos limite

E use-o para seus URLs com req.backend

backend default {
.host = "127.0.0.1";
.port = "81";
}

backend admin {
.host = "127.0.0.1";
.port = "81";
.connect_timeout = 600s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
}

sub vcl_recv {
...
if (req.url ~ "^/admin")
{
set req.backend = admin;
}
..
}
    
por 11.02.2012 / 01:43
1

Recentemente encontrei algo assim ...

Adicionamos o seguinte nos back-ends (certifique-se de NÃO COLOCÁ-LO na sub-declaração .probe {} [apenas um pequeno erro que causou um pouco de confusão para nós por um curto período de tempo;]):

.connect_timeout = 60s;
.first_byte_timeout = 120s;
.between_bytes_timeout = 60s;

Você pode ler mais sobre eles com 'man vcl'.

Espero que isso ajude!

    
por 10.02.2012 / 23:23
0

Você pode usar o pipe para solicitações longas

if (req.url ~ "^/admin/long_request" || req.url ~ "^/upload")
{
    return (pipe);
}

# just add the  Connection: close header
sub vcl_pipe {
    set bereq.http.connection = "close";
}
    
por 25.09.2017 / 11:12
0

Use vcl_backend_fetch e defina o tempo limite:

sub vcl_backend_fetch { if (bereq.method == "POST" && bereq.url == "/slow") { set bereq.first_byte_timeout = 300s; } }

    
por 25.11.2018 / 22:04

Tags