http://nginx.org/en/docs/syntax.html上有关“configuration文件度量单位”的nginx文档说:
大小可以以字节,千字节(后缀k和K)或兆字节(后缀m和M)
这是不清楚的,因为千字节正式定义为1000字节,兆字节正式定义为1000000字节,但通常分别表示1024字节和1024 * 1024字节。 在nginxconfiguration文件中究竟使用了多大的千字节? 当文档说默认是1m是1000000或1048576 ?
在http://hg.nginx.org/nginx/file/15056a29841a/src/core/ngx_parse.c (这是在1.5.6中的ngx_parse.c的版本,但函数看起来在0.3.53版本 ),看起来k或K表示1024个字节,即kibibytes(KiB),m或M表示mebibytes(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; }