Ошибки

Ошибка nginx could not build server_names_hash: длинное имя сайта

Имя сайта длиннее, чем помещается в ячейку таблицы имён nginx. Откройте /etc/nginx/nginx.conf, уберите решётку в строке server_names_hash_bucket_size и поставьте 128.

Обновлено 10.10.2026≈ 4 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Откройте /etc/nginx/nginx.conf на строке 23 — шаг 1.
  2. Уберите решётку в начале строки и поставьте значение 128 — шаг 2.
  3. Проверьте и примените настройки — шаг 3.

Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Что значит это сообщение

2026/10/09 12:00:00 [emerg] 2345#2345: could not build server_names_hash, you should increase server_names_hash_bucket_size: 64

Имена сайтов из строк server_name nginx хранит в таблице, где у каждой ячейки есть размер — server_names_hash_bucket_size. Если имя сайта длинное, оно не помещается в ячейку, и nginx просит её увеличить. Число в конце — текущий размер. Файла и строки в сообщении нет: дело не в файле сайта, а в общей настройке. Дата, время и номер процесса у вас будут свои. В других сборках nginx та же строка начинается со слов nginx: [emerg].

По умолчанию размер зависит от процессора сервера — 32, 64 или 128. В /etc/nginx/nginx.conf из Ubuntu строка с этой настройкой уже есть, но выключена решёткой.

Шаг 1. Откройте nginx.conf на строке 23

sudo nano -l +23 /etc/nginx/nginx.conf

Курсор встанет на строку:

	# server_names_hash_bucket_size 64;

Если на строке 23 другой текст — файл уже правили, — найдите эту строку в файле: нажмите Ctrl+W, напечатайте server_names_hash и нажмите Enter.

Шаг 2. Увеличьте server_names_hash_bucket_size

Удалите решётку и пробел после неё, а число поставьте в два раза больше того, что было в сообщении. Для сообщения с числом 64 строка станет такой:

	server_names_hash_bucket_size 128;

Берите следующую степень двойки: после 64 — 128, после 128 — 256. Если после проверки ошибка останется с числом 128, поставьте 256.

Если в сообщении server_names_hash_max_size

2026/10/09 12:00:00 [emerg] 2345#2345: could not build server_names_hash, you should increase server_names_hash_max_size: 512

Такое бывает, когда имён сайтов на сервере много. Добавьте под строкой server_names_hash_bucket_size ещё одну:

	server_names_hash_max_size 1024;

Если вместо [emerg] в сообщении [warn] и слова could not build optimal server_names_hash, это предупреждение: nginx работает. Его можно убрать тем же способом — увеличив server_names_hash_max_size.

Шаг 3. Проверьте и примените настройки

Сохраните файл: Ctrl+O, Enter, затем Ctrl+X. Проверьте настройки ещё раз командой sudo nginx -t. Когда в ответе будут слова syntax is ok и test is successful, примените их:

sudo systemctl reload nginx

Если команда ничего не ответила, настройки применены.

Как проверить

sudo nginx -t отвечает syntax is ok и test is successful. Откройте сайт с длинным именем в браузере.

Похожие ошибки

СообщениеЧем отличается
conflicting server nameОдно имя стоит в двух блоках
invalid number of argumentsОшибка в самой строке — например, нет точки с запятой

Тексты сообщений на этой странице сверены с исходным кодом nginx 1.24.0 — эта версия стоит в Ubuntu 24.04. В других версиях слова могут немного отличаться.

Источники

Сверено 9–10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026