Nginx 配置文件占用多少千字节或多少千比字节

Nginx 配置文件占用多少千字节或多少千比字节

nginx 文档中有关“配置文件测量单位”的说明位于http://nginx.org/en/docs/syntax.html说:

大小可以以字节、千字节(后缀 k 和 K)或兆字节(后缀 m 和 M)为单位指定

这不太清楚,因为千字节的官方定义是 1000 字节,兆字节的官方定义是 1000000 字节,但通常分别用来表示 1024 字节和 1024 * 1024 字节。nginx 配置文件中使用的千字节到底是多少?当文档说默认是 时,1m1000000还是1048576

答案1

查看源代码http://hg.nginx.org/nginx/file/15056a29841a/src/core/ngx_parse.c(这是 1.5.6 版的 ngx_parse.c,但该函数在0.3.53版本,您可以检查当前版本这里),其中 k 或 K 代表 1024 字节,即千比字节 (KiB),而 m 或 M 代表兆比字节 (MiB),即 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;
}

相关内容