Varnish POST problema “9 FetchError c erro de escrita backend: 11” para aplicação / x-www-form-urlencoded content

2

Cortando uma longa história, conseguimos obter um erro mais preciso do Varnishlog.

O Varnishlog nos diz que estamos enviando um

31 TxRequest    - POST
31 TxHeader     - Content-Type: application/x-www-form-urlencoded

mas estamos chegando

    9 FetchError   c backend write error: 11
   31 BackendClose - [backend name]
    9 VCL_call     c error
    9 VCL_return   c deliver
    9 Length       c 488
    9 VCL_call     c deliver
    9 VCL_return   c deliver
    9 TxProtocol   c HTTP/1.1
    9 TxStatus     c 503

Ainda não sabemos exatamente o que é isso, mas aparentemente o Content-Type: application / x-www-form-urlencoded não está conseguindo como deveria. Ajuda ainda necessária, por favor!

Mensagem original abaixo.

O título era "O verniz não permite que os usuários do Joomla façam login - 503 guru meditation error", mas eu mudei para obter mais atenção para o problema e não para os sintomas.

Olá,

Temos um site de produção para um jornal local que atualmente está atrás de um proxy reverso do Apache, basicamente o site em um servidor e o outro sendo reservado apenas como proxy reverso (bem, há mais, mas isso não tem relevância aqui) . O Apache como um proxy reverso funciona, mas pode ser mais rápido.

Queremos mudar o proxy reverso para usar o Varnish em vez do Apache em um servidor Ubuntu 10.4. O Varnish é a versão 2.10 instalada diretamente dos repositórios do Ubuntu. O Ubuntu 10.4 usa o PHP 5.3.2.

Para surfistas anônimos, o site funciona maravilhosamente com o Varnish. Até agora podemos obter muito boa velocidade de verniz, só temos alguns problemas com o login ou a saída.

O grande problema é que os usuários não podem efetuar login: eles recebem uma página de erro 503 do Varnish todas as vezes. Os logs não revelam a causa. Parece que o pedido nunca sairia do verniz. Então, estamos apenas adivinhando - não um ponto de partida strong.

Passamos pelo que foi sugerido em várias partes da web. Aumentamos os tempos limite para

backend xxx {
        .host = "xxx.xx";
        .port = "http";
        .connect_timeout = 60s;
        .first_byte_timeout = 60s;
        .between_bytes_timeout = 60s;
}

mas parece que temos a página de erro do 503 guru muito mais rápida do que isso, como em aprox. 5 segundos.

Aumentamos o tamanho dos cabeçalhos Varnish para 128 no daemon.

Em vcl_recv temos

if (req.http.Authenticate || req.http.Authorization) {
         return(pass);
        }

e em vcl_fetch

## auhtentication handling
         if (req.http.Authenticate || req.http.Authorization) {
           return(pass);
         }

Não tiramos cookies.

Tentamos garantir que as páginas de erro não sejam armazenadas em cache. Como dito acima, não podemos ver nada nos logs de back-end do Apache, aparentemente nunca é solicitado a autenticação do usuário do Joomla.

O verniz não parece ter muita menção com conexão ao Joomla. (Não podemos abandonar o Joomla, essa seleção foi feita e nós apenas temos que viver com o que nos foi dado) Alguém tem uma combinação de trabalho Varnish - Joomla?

Obrigado pela leitura. Por favor ajude. Precisamos de algumas dicas - desesperadamente. Alguma sugestão?

ompap

    
por ompap 11.12.2010 / 10:02

2 respostas

3

Este relatório de bug parece sugerir uma solução para o seu problema; você deveria tentar.

link

    
por 28.11.2011 / 02:01
0
if (req.http.Authenticate || req.http.Authorization) {
     pass;
    }

A última vez que trabalhei com o Varnish, você não usou return(pass); , apenas pass; Não sei se isso causará erros, ou provavelmente, fará com que o verniz ignore esses bits de sintaxe.

A razão para fazer isso é porque pass; faz com que o mecanismo de verniz mude diretamente para o modo de aprovação, que então passa o material diretamente do backend para o cliente.
A sério. Eu estou começando a pensar mais e mais que essas declarações return estão apenas bagunçando tudo.

edit2: Acabei de reler os documentos da VCL e não consegui encontrar nada sobre uma palavra-chave return .

    
por 12.12.2010 / 00:35