Ошибки

Ошибка nginx a duplicate default server: два сайта по умолчанию

Пометка default_server для одного порта стоит в двух блоках server — у вас и в стандартном файле default из Ubuntu. Уберите её из своего файла или отключите стандартный сайт.

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

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

  1. Найдите, где стоит default_server, — шаг 1.
  2. Уберите пометку из своего файла или отключите стандартный сайт — шаг 2.
  3. Проверьте и примените настройки — шаг 3.

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

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

2026/10/09 12:00:00 [emerg] 2345#2345: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/example.com:2
nginx: configuration file /etc/nginx/nginx.conf test failed

default_server — пометка в строке listen: «сайт по умолчанию». Его nginx показывает, когда имя в запросе не подходит ни к одному блоку server, — например, когда сайт открывают по IP-адресу. Для каждого адреса и порта такой блок может быть только один. Сообщение значит, что на 0.0.0.0:80 — порт 80 — их два. Для IPv6 в сообщении будет [::]:80. Дата, время и номер процесса у вас будут свои. В других сборках nginx та же строка начинается со слов nginx: [emerg].

В Ubuntu после установки nginx уже включён стандартный сайт — файл /etc/nginx/sites-enabled/default. В нём строки 22 и 23:

	listen 80 default_server;
	listen [::]:80 default_server;

Если в своём файле вы тоже написали listen 80 default_server;, получится две пометки. Файлы nginx читает по алфавиту, и сообщение указывает на ту, что он встретил второй. Файл default идёт раньше example.com, поэтому в примере сообщение указывает на ваш файл. Если ваш файл по алфавиту раньше, сообщение укажет на default:22.

Шаг 1. Найдите все пометки default_server

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

Пример ответа:

/etc/nginx/sites-enabled/default:22:	listen 80 default_server;
/etc/nginx/sites-enabled/default:23:	listen [::]:80 default_server;
/etc/nginx/sites-enabled/default:27:	# listen 443 ssl default_server;
/etc/nginx/sites-enabled/default:28:	# listen [::]:443 ssl default_server;
/etc/nginx/sites-enabled/example.com:2:    listen 80 default_server;

Строки с решёткой # выключены и не считаются. Пометка на порт 80 стоит в файле default и в файле example.com.

Шаг 2. Оставьте одну пометку

Вариант 1. Уберите default_server из своего файла

Откройте свой файл на строке из сообщения:

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

Удалите из строки слово default_server — должно остаться так:

    listen 80;

Если ниже есть listen [::]:80 default_server;, уберите слово и там. Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.

Вариант 2. Отключите стандартный сайт

Если стандартная страница nginx вам не нужна, отключите стандартный сайт. Команда удаляет только ссылку из sites-enabled — сам файл останется в sites-available:

sudo rm /etc/nginx/sites-enabled/default

Тогда сайтом по умолчанию станет ваш блок с пометкой default_server. Включить стандартный сайт обратно:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

Если не уверены, какой вариант выбрать, берите первый.

Если в сообщении a duplicate listen

2026/10/09 12:00:00 [emerg] 2345#2345: a duplicate listen 0.0.0.0:80 in /etc/nginx/sites-enabled/example.com:3

В одном блоке server два раза написана одна и та же строка listen. Удалите строку из сообщения: откройте файл на ней и нажмите Ctrl+K.

Если в сообщении duplicate listen options

Параметры вроде reuseport или backlog в строке listen указаны для одного и того же порта в двух блоках server. Оставьте их только в одном блоке.

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

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

sudo systemctl reload nginx

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

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

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

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

СообщениеЧем отличается
conflicting server nameПовторяется имя сайта, а не пометка. Это предупреждение — nginx работает
duplicate locationПовторяется блок location внутри server
Address already in useПорт занят другой программой

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

Источники

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

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

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