qual é a diferença entre proxy_request_buffering e proxy_buffering no nginx?

6

Vejo que proxy_request_buffering armazenará em buffer a solicitação e proxy_buffering a resposta.

No entanto, gostaria de entender os aspectos internos do que isso significa.

    
por tdecs 08.12.2015 / 16:57

1 resposta

7

Da Nginx documentação :

Proxy_Buffering

Syntax: proxy_buffering on | off;
Default:    
proxy_buffering on;
Context:    http, server, location
Enables or disables buffering of responses from the proxied server.

Quando o buffer está ativado, o nginx recebe uma resposta do servidor proxy o mais rápido possível, salvando-o nos buffers definidos pelo proxy_buffer_size e proxy_buffers . Se a resposta inteira não couber na memória, uma parte dela pode ser salva em um arquivo temporário no disco. Escrever em arquivos temporários é controlado pelo proxy_max_temp_file_size e diretivas proxy_temp_file_write_size .

Quando o armazenamento em buffer está desativado, a resposta é passada para um cliente de forma síncrona, imediatamente à medida que é recebida. O nginx não tentará ler toda a resposta do servidor proxy. O tamanho máximo dos dados que o nginx pode receber do servidor por vez é definido pelo proxy_buffer_size directiva.

O armazenamento em buffer também pode ser ativado ou desativado passando "sim" ou "não" no campo de cabeçalho de resposta "X-Accel-Buffering". Esse recurso pode ser desativado com a diretiva proxy_ignore_headers .

Proxy_Request_Buffering

Syntax: proxy_request_buffering on | off;
Default:    
proxy_request_buffering on;
Context:    http, server, location
This directive appeared in version 1.7.11.
Enables or disables buffering of a client request body.

Quando o armazenamento em buffer está ativado, todo o corpo da solicitação é lido do cliente antes de enviar o solicitação para um servidor proxy.

Quando o armazenamento em buffer está desativado, o corpo da solicitação é enviado ao servidor em proxy imediatamente à medida que é recebido. Nesse caso, a solicitação não pode ser passada para o próximo servidor se o nginx já começou a enviar a solicitação corpo.

Quando a codificação de transferência em partes HTTP / 1.1 é usada para enviar o corpo da solicitação original, o corpo da solicitação será armazenado em buffer, independentemente do valor da diretiva, a menos que HTTP / 1.1 seja ativado para proxy.

    
por 08.12.2015 / 17:03

Tags