Ошибки

Ошибка nginx open() failed (2: No such file or directory)

nginx не нашёл файл по пути в кавычках. Если в строке есть слова client и request, посетитель запросил файл, которого нет, — это ошибка 404. Если nginx не запускается, нет файла настроек или папки для журнала.

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

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

  1. Найдите в таблице ниже, на что похоже ваше сообщение.
  2. Сделайте то, что написано в разделе для вашего случая.
  3. Если правили настройки — проверьте и примените их.

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

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

open() — функция, которой программа открывает файл. 2: No such file or directory — «нет такого файла или папки». Путь в кавычках — тот, который nginx пытался открыть. Дата, время и номер процесса у вас будут свои. В других сборках nginx та же строка начинается со слов nginx: [emerg].

На что похоже сообщениеЧто случилось
[error], в конце есть client, request и hostПосетитель запросил файл, которого нет, — если файла нет для посетителя
[emerg], путь в /etc/nginx/sites-enabled/, в конце in /etc/nginx/nginx.conf:60Битая ссылка — если в sites-enabled битая ссылка
[emerg], в конце in и путь к файлу сайтаСтрока include ведёт к файлу, которого нет, — если include ведёт к файлу, которого нет
[emerg], путь к файлу .log, в конце нет inНет папки для журнала — если нет папки для журнала

Если файла нет для посетителя

2026/10/09 12:00:00 [error] 2346#2346: *15 open() "/var/www/example.com/favicon.ico" failed (2: No such file or directory), client: 203.0.113.5, server: example.com, request: "GET /favicon.ico HTTP/1.1", host: "example.com"

Такая строка появляется в журнале /var/log/nginx/error.log, пока nginx работает: он запущен, просто запрошенного файла нет — посетитель получил ошибку 404. После request: — адрес, который открывали, а путь в кавычках — где nginx искал файл: папка из строки root плюс адрес.

Если в блоке location есть строка try_files $uri $uri/ =404; — она стоит в стандартных настройках Ubuntu, — ненайденные файлы в журнал ошибок не попадают. Их видно в журнале запросов /var/log/nginx/access.log с кодом 404.

Если файла не хватает на самом деле — например, картинки или favicon.ico — положите его в эту папку. Если в пути не та папка, где лежат файлы сайта, исправьте строку root в файле сайта. Посмотреть, что лежит в папке:

ls -l /var/www/example.com/

Подробнее — на странице 404 Not Found.

Если в sites-enabled битая ссылка

2026/10/09 12:00:00 [emerg] 2345#2345: open() "/etc/nginx/sites-enabled/example.com" failed (2: No such file or directory) in /etc/nginx/nginx.conf:60
nginx: configuration file /etc/nginx/nginx.conf test failed

В папке sites-enabled лежит ссылка, которая никуда не ведёт: оригинал в sites-available удалили, переименовали, или ссылку создали с неверным путём. Строка 60 в nginx.conf — та, что подключает все файлы из sites-enabled. Найдите битые ссылки:

find -L /etc/nginx/sites-enabled/ -type l

Команда покажет только битые ссылки. Удалите такую ссылку — оригинал она не затронет:

sudo rm /etc/nginx/sites-enabled/example.com

Если сайт нужен, проверьте, что его файл есть в sites-available, и создайте ссылку заново. Пишите оба пути целиком, от /etc:

ls -l /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Если include ведёт к файлу, которого нет

2026/10/09 12:00:00 [emerg] 2345#2345: open() "/etc/nginx/snippets/ssl-params.conf" failed (2: No such file or directory) in /etc/nginx/sites-enabled/example.com:12
nginx: configuration file /etc/nginx/nginx.conf test failed

Строка include подключает к настройкам другой файл, а этого файла нет. Файл сайта скопировали с другого сервера или из инструкции, а подключаемый файл — нет. Откройте файл из сообщения сразу на нужной строке: число после знака + — номер строки из сообщения, путь — тот, что стоит перед двоеточием.

sudo nano -l +12 /etc/nginx/sites-available/example.com

Если в сообщении путь начинается с /etc/nginx/sites-enabled/, откройте файл с тем же именем в папке /etc/nginx/sites-available/ — там лежит оригинал, а в sites-enabled только ссылка на него. Как это проверить, написано в разделе «Какой файл открывать».

Посмотрите, какие файлы есть в папке из пути:

ls -l /etc/nginx/snippets/

Если файл лежит под другим именем, исправьте имя в строке include. Если его нет, поставьте в начале строки include решётку # — nginx перестанет её читать. Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.

Если нет папки для журнала

2026/10/09 12:00:00 [emerg] 2345#2345: open() "/var/log/nginx/example.com/error.log" failed (2: No such file or directory)

В строке error_log или access_log указан путь к файлу журнала в папке, которой нет. Сам файл nginx создаст, а папку — нет. Создайте её:

sudo mkdir -p /var/log/nginx/example.com

Или поменяйте путь в строке на папку, которая уже есть, — например, /var/log/nginx/example.com.error.log. Найти строку поможет команда:

sudo grep -Rn '_log ' /etc/nginx/sites-enabled/ /etc/nginx/conf.d/

Проверьте и примените настройки

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

sudo systemctl reload nginx

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

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

sudo nginx -t отвечает syntax is ok и test is successful. Для файла, которого не было у посетителя, откройте его адрес в браузере: вместо 404 должен открыться файл.

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

СообщениеЧем отличается
open() … failed (13: Permission denied)Файл есть, но прав не хватает — см. 403 Forbidden и nginx -t: Permission denied
cannot load certificateНе найден файл сертификата
Job for nginx.service failedsystemctl пишет, что nginx не запустился, — причина в журнале

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

Источники

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

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

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