Ошибки

Ошибка nginx unexpected end of file и unexpected "}": непарные скобки

В файле настроек не хватает закрывающей фигурной скобки, есть лишняя или перед } забыта точка с запятой. Посчитайте скобки и найдите блок без пары.

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

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

  1. Посчитайте открывающие и закрывающие скобки в файле — шаг 1.
  2. Найдите блок без пары и исправьте — шаг 2.
  3. Проверьте и примените настройки — шаг 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. В других версиях слова могут немного отличаться.

Источники

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

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

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