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