在运行Nginx + FastCGI(通过Webinoly)的Ubuntu服务器上,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?
谢谢!
答案 0 :(得分:1)
确实没有fastcgi_params_hash_max_size
和fastcgi_params_hash_bucket_size
指令。该错误消息是“自动的”,它采用哈希名称(在这种情况下为fastcgi_params_hash
),然后通过附加_max_size
和_bucket_size
来构造建议的指令名称。
通常,NGINX散列用于存储类似数组的配置数据,例如map
或fastcgi_params
(您的情况),关于它们的使用,有单独的document :
大多数哈希具有允许更改这些参数的相应指令,例如,对于服务器名称哈希,它们是server_names_hash_max_size和server_names_hash_bucket_size。
因此,您的哈希没有“相应的指令”,除了:
fastcgi_param
指令? (或过多的冗长值)。就fastcgi_params
而言,您的配置很可能不理想。请记住,这些是传递给FastCGI(例如PHP-FPM)的,如果数据太大,那么您肯定会遇到性能问题,因为NGINX-PHP-FPM之间有大量数据通过。