could not build server_names_hash, you should increase server_names_hash_bucket_size: 64

Gena Makhomed gmm на csdoc.com
Чт Май 7 14:50:55 UTC 2020


Здравствуйте, All!

nginx version: nginx/1.17.10 из официального репозитория.

Почему nginx время от времени ни с того ни с сего глючит при релоаде
конфигурации и остается работать со старой конфигурацией
при добавлении нового хоста в конфиг?

Уже в который раз наступаю на эти грабли.

При выполнении команды nginx -t он выдает такие ошибки:

nginx: [warn] could not build optimal server_names_hash, you should 
increase either server_names_hash_max_size: 512 or 
server_names_hash_bucket_size: 64; ignoring server_names_hash_bucket_size
nginx: [emerg] could not build server_names_hash, you should increase 
server_names_hash_bucket_size: 64
nginx: configuration file /etc/nginx/nginx.conf test failed

или такие:

nginx: [emerg] could not build server_names_hash, you should increase 
server_names_hash_bucket_size: 64
nginx: configuration file /etc/nginx/nginx.conf test failed

и т.п.

Почему нельзя его научить самостоятельно подбирать нужные ему размеры?

Например, так:

   server_names_hash_max_size auto;
   server_names_hash_bucket_size auto;

и забыть про эти глюки как про страшный сон?

Документацию http://nginx.org/ru/docs/hash.html читал,
но так и не понял, почему nginx не может это делать самостоятельно,
пусть даже ценой некоторой небольшой задержки пре релоаде конфигурации.

Небольшая задержка при релоаде конфигурации имхо - это гораздо лучше,
чем выдавать ошибку и в случайные и непредсказуемые моменты времени
полностью игнорировать добавление нового хоста в конфиг.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru