nginx configurando buffers uwsgi e gzip para diferentes cenários de uso

1

Estou tentando configurar dois grupos de caminhos de URL para cenários de uso e consumo de recursos relativamente diferentes no nginx. Ambos são servidos pela mesma aplicação do uwsgi.

  • Grupo 1: páginas HTML regulares com até 128k de tamanho, padrão
  • Grupo 2: grandes "arquivos" XML até muitos MB em tamanho (criados pelo aplicativo em tempo real)

O requisito é que ambos sejam gzipados, e os XMLs também devem ser armazenados em cache 1h.

O que eu não entendo é o significado do número de buffers e como definir seus números e tamanhos de acordo com o tráfego esperado e o tamanho do conteúdo, tanto para o uwsgi quanto para o gzip.

Além disso, para a configuração abaixo, recebo o erro do nginx:

"uwsgi_busy_buffers_size" must be less than the size of all "uwsgi_buffers" minus one buffer in /etc/nginx/nginx.conf:113

uwsgi_busy_buffers_size parece não estar documentado.

location ~ /path/to/(.+)\.xml {
    uwsgi_hide_header       "Set-Cookie";
    uwsgi_ignore_headers    "Set-Cookie";
    uwsgi_buffers           2 8M;
    uwsgi_cache             xmlfiles;
    uwsgi_cache_key         $request_uri;
    uwsgi_cache_valid       200 1h;
    uwsgi_cache_valid       04 5m;
    uwsgi_cache_use_stale   error;
    expires                 +1h;

    gzip                    on;
    gzip_types              application/xml;
    gzip_buffers            2 8M;

    try_files               $uri @backend;
}

location / {
    try_files       $uri @backend;
    gzip            on;
    gzip_buffers    8 256k;
    uwsgi_buffers   8 256k;

    try_files       $uri @backend;
}

location @backend {
    include      uwsgi_params;
    uwsgi_pass   unix:///tmp/uwsgi-app.sock;
}

Por favor ajude. nginx 1.0.14

    
por V. K. 15.05.2012 / 13:56

2 respostas

1

uwsgi_busy_buffers_size tem o mesmo significado que fastcgi_busy_buffers_size , mas para uwsgi.

Limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. In the mean time, the rest of the buffers can be used for reading a response and, if needed, buffering part of a response to a temporary file. By default, size is limited by two buffers set by the uwsgi_buffer_size and uwsgi_buffers directives.

p.s. Valores padrão das diretivas relacionadas a buffers no nginx têm valores ótimos para a maioria dos casos. Então, você deve sintonizá-los somente se você entender completamente o que está fazendo e por quê.

    
por 16.05.2012 / 17:31
0

Assim como uma nota lateral, o tamanho máximo permitido para cada buffer gzip é 8k .

Para obter o mesmo tamanho geral, você precisará usar gzip_buffers 2048 8k; .

Não tenho certeza se a mesma limitação se aplica a uwsgi_buffers .

Em geral, é melhor ter mais buffers pequenos disponíveis do que alguns buffers enormes.

    
por 10.12.2012 / 07:20