Os arquivos de configuração do nginx usam kilobytes ou kibibytes

5

A documentação do nginx em "Unidades de medida do arquivo de configuração" no link diz:

Sizes can be specified in bytes, kilobytes (suffixes k and K) or megabytes (suffixes m and M)

Isso não está claro, porque kilobyte é oficialmente definido como 1000 bytes e megabyte é oficialmente definido como 1000000 bytes, mas geralmente é usado para significar 1024 bytes e 1024 * 1024 bytes, respectivamente. Exatamente o tamanho do kilobyte usado nos arquivos de configuração do nginx? Quando a documentação diz que o padrão é 1m é esse 1000000 ou 1048576 ?

    
por Old Pro 01.10.2013 / 23:16

1 resposta

9

Olhando a fonte em link (esta é a versão do ngx_parse .c na versão 1.5.6, mas a função aparece a mesma na versão 0.3.53 , e você pode verificar a versão atual aqui ), ele aparece k ou K representam 1024 bytes, ou seja, kibibytes (KiB) e m ou M representa mebibytes (MiB), ou seja, 1024 KiB.

ssize_t
ngx_parse_size(ngx_str_t *line)
{
    u_char     unit;
    size_t     len;
    ssize_t    size;
    ngx_int_t  scale;

    len = line->len;
    unit = line->data[len - 1];

    switch (unit) {
    case 'K':
    case 'k':
        len--;
        scale = 1024;
        break;

    case 'M':
    case 'm':
        len--;
        scale = 1024 * 1024;
        break;

    default:
        scale = 1;
    }

    size = ngx_atosz(line->data, len);
    if (size == NGX_ERROR) {
        return NGX_ERROR;
    }

    size *= scale;

    return size;
}
    
por 01.10.2013 / 23:16

Tags