如何设置fastcgi_params_hash_max_size?

How to set fastcgi_params_hash_max_size?

在我的 Ubuntu 服务器 运行 Nginx + FastCGI(通过 Webinoly)上,nginx -t 抛出以下警告:

    nginx: [warn] could not build optimal fastcgi_params_hash, 
you should increase either fastcgi_params_hash_max_size: 512 or 
fastcgi_params_hash_bucket_size: 64; ignoring fastcgi_params_hash_bucket_size

一开始以为要改server_names_hash_max_size,结果已经设置成2048了,没有关系。为了确定,我尝试将它的值降低到 8,此时 nginx -t 发出警告,我应该增加它。恢复后,我得到了关于 fastcgi_params_hash_max_size 的初始警告。

我也试过在我的 nginx.conf 文件上设置 fastcgi_params_hash_max_size,但后来我得到一个错误,指出 fastcgi_params_hash_max_size 是一个未知指令。

所以,我想我的问题是,如何更改 fastcgi_params_hash_max_size?

提前致谢!

确实没有fastcgi_params_hash_max_sizefastcgi_params_hash_bucket_size指令。此错误消息在某种程度上是 "automatic",它采用哈希名称(在本例中为 fastcgi_params_hash),然后通过附加 _max_size_bucket_size.[=21 构造建议的指令名称=]

NGINX 散列通常用于存储类似数组的配置数据,如 maps 或 fastcgi_paramss(你的情况),关于它们有单独的 document说:

Most hashes have the corresponding directives that allow changing these parameters, for example, for the server names hash they are server_names_hash_max_size and server_names_hash_bucket_size.

所以你的散列没有 "corresponding directives",除了:

你无能为力
  • 调查为什么您的配置中有太多 fastcgi_param 指令? (或者值太长)。关于 fastcgi_paramss,您的配置很可能不是最理想的。请记住,这些被传递给 FastCGI(例如 PHP-FPM),如果该数据太大,那么您肯定会遇到性能问题,因为 NGINX-PHP-FPM 之间传输的数据太多.
  • 提交有关添加这些指令的 NGINX 错误问题