Ошибка nginx invalid number of arguments: лишнее или недостающее значение
У директивы больше или меньше значений, чем нужно. Ищите забытую точку с запятой в строке выше, пробел в пути к папке или пропущенное значение.
Содержание 9
Что сделать прямо сейчас
- Откройте файл на строке из сообщения — шаг 1.
- Найдите свой случай и исправьте строку — шаг 2.
- Проверьте и примените настройки — шаг 3.
Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
Что значит это сообщение
2026/10/09 12:00:00 [emerg] 2345#2345: invalid number of arguments in "root" directive in /etc/nginx/sites-enabled/example.com:6invalid number of arguments — «неверное число значений». У каждой директивы своё число значений: у root — ровно одно, путь к папке, у try_files — два и больше. Значения разделяются пробелами. Если пробелов больше или меньше, чем нужно, nginx останавливается. Дата, время и номер процесса у вас будут свои. В других сборках nginx та же строка начинается со слов nginx: [emerg].
Шаг 1. Откройте файл на строке из сообщения
Если в сообщении путь начинается с /etc/nginx/sites-enabled/, откройте файл с тем же именем в папке /etc/nginx/sites-available/ — там лежит оригинал, а в sites-enabled только ссылка на него. Как это проверить, написано в разделе «Какой файл открывать». Откройте файл из сообщения сразу на нужной строке: число после знака + — номер строки из сообщения, путь — тот, что стоит перед двоеточием.
sudo nano -l +6 /etc/nginx/sites-available/example.comШаг 2. Найдите свой случай
Забыта точка с запятой
root /var/www/example.com
index index.html;В строке root нет точки с запятой, поэтому nginx склеил её со следующей: у root получилось три значения — /var/www/example.com, index и index.html. Сообщение называет директиву root, а номер строки — следующей, где стоит ;. Поставьте ; в конце строки root.
Пробел в пути
root /var/www/my site;Пробел разделяет значения, поэтому у root их два: /var/www/my и site. Возьмите путь в двойные кавычки:
root "/var/www/my site";Надёжнее переименовать папку, чтобы в пути не было пробелов, — например, /var/www/my-site.
Не хватает значения
try_files $uri;try_files нужно не меньше двух значений: что искать и что отдать, если ничего не нашлось. Для простого сайта из HTML-файлов:
try_files $uri $uri/ =404;Если не помните, сколько значений нужно директиве, откройте её описание в указателе директив nginx: число значений видно в строке «Синтаксис».
invalid parameter в строке listen
2026/10/09 12:00:00 [emerg] 2345#2345: invalid parameter "listen" in /etc/nginx/sites-enabled/example.com:3Так nginx отвечает, когда в конце строки listen 80 забыта точка с запятой: следующая строка listen [::]:80; приклеилась к ней, и слово listen попало в параметры. Поставьте ; в конце строки 2.
Предупреждение has suspicious symbols
2026/10/09 12:00:00 [warn] 2345#2345: server name "/var/www/example.com" has suspicious symbols in /etc/nginx/sites-enabled/example.com:5Это предупреждение, а не ошибка: проверка пройдёт, но сайт будет работать не так. В строке server_name забыта точка с запятой, и к именам сайта приклеилась следующая строка — root /var/www/example.com;. Путь к папке попал в имена, а директива root пропала. Поставьте ; в конце строки server_name.
Шаг 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 без строк [warn]. Откройте сайт в браузере.
Похожие ошибки
| Сообщение | Чем отличается |
|---|---|
| directive … is not terminated by ";" | Точка с запятой забыта перед строкой с { |
| unexpected "}" | Точка с запятой забыта перед } |
| unknown directive | nginx не знает самого слова |
Тексты сообщений на этой странице сверены с исходным кодом nginx 1.24.0 — эта версия стоит в Ubuntu 24.04. В других версиях слова могут немного отличаться.
Источники
- Исходный код nginx 1.24.0: ngx_conf_file.c — как nginx читает файл настроек и тексты ошибок.
- Исходный код nginx 1.24.0: ngx_http_core_module.c — проверка параметров listen и server_name.
- Документация nginx: root и try_files — сколько значений у директив.
Сверено 9–10 октября 2026 года.
Что почитать дальше
- Все ошибки nginx.
- Как разместить сайт на VPS: шаг 4 — как выглядит файл сайта.
Проверено и обновлено: 10.10.2026