nginx inserindo caracteres extras no corpo de resposta multi-status

2

Aqui está a configuração. Eu tenho um servidor rodando o apache / php hosting ownCloud. Entre outras coisas, estou usando para fazer a sincronização de contatos do CardDAV. Para fazer as coisas funcionarem com meu domínio, eu tenho um servidor nginx rodando no frontend como um proxy reverso para o servidor ownCloud. Minha configuração do nginx é a seguinte:

server {
    listen       80;
    server_name  cloud.mydomain.com;

    location / {
        proxy_set_header X-Forwarded-Host cloud.mydomain.com;
        proxy_set_header X-Forwarded-Proto http;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size 0;
        proxy_redirect off;
        proxy_pass      http://server;
    }
}

O problema é que, quando meu telefone faz um PROPFIND no servidor, o nginx adiciona caracteres extras ao corpo do conteúdo que atira o telefone. Especificamente, ele prefixa d611\r\n na frente do corpo e anexa 0\r\n\r\n ao final do conteúdo. (Eu recebi isso de wireshark.) Ele também re-chunk o resultado. Como obtenho o nginx para enviar o conteúdo original como está?

    
por Jason E 18.06.2012 / 02:26

1 resposta

1

Os caracteres adicionais que você vê são o formato de codificação de transferência em partes . O número é o tamanho do fragmento e os \r\n são delimitadores. Parece que o telefone não suporta codificação de transferência em partes (embora se declara que suporta HTTP 1.1 é suposto). Você pode desativar a codificação de transferência em partes com a diretiva chunked_transfer_encoding .

chunked_transfer_encoding off;
    
por 18.06.2012 / 05:41