nginx - 无法构建最佳变量_hash

nginx - 无法构建最佳变量_hash

很长一段时间以来,nginx 一直向我发出此警告:

nginx: [warn] could not build optimal variables_hash, you should increase either variables_hash_max_size: 1024 or variables_hash_bucket_size: 64; ignoring variables_hash_bucket_size

但是在我的配置的 http 块中我有这个:

http {
  # More config...

  variables_hash_max_size 1024;
  variables_hash_bucket_size 64;

  # More config...
}

(增加到更高的值也不能解决问题!另外,我还运行nginx -T并检查了这些键是否设置为不同的值,但事实并非如此!)
我该如何解决这个问题?

(如果需要,我会发布更多的配置。我只是不确定哪些部分是相关的。)

答案1

您提到过...

并检查这些键是否被设置为不同的值,但事实并非如此!

那只是对声明进行抽查,还是你 grep 了配置文件?我会选择后者,以确保它不会在其他地方声明。

粘贴的结果nginx -V

您是否启用了任何额外的模块?您尝试的值有多高?您可能有模块增加了变量权重,或者您声明了很多(或很长)的值。

答案2

警告消息显示当前的价值,而不是建议价值。

如果收到此警告,您应该将值设置为其现有值的两倍,即 2 的幂。因此variables_hash_max_size 2048;应该可以工作。

参考:NGINX 文档

答案3

对我有用的是:

/etc/nginx/nginx.conf

http {
    ...
    types_hash_bucket_size 128;
    ...
}

相关内容