很长一段时间以来,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;
...
}