nginx - повторяющаяся ошибка сервера по умолчанию

105

В моем журнале ошибок я получаю

[Emerg] 10619 # 0: дублированный сервер по умолчанию для 0.0.0.0:80 в /etc/nginx/sites-enabled/mysite.com:4

в строке 4 у меня есть:

server_name mysite.com   www.mysite.com;

Какие-либо предложения?

Ymn
источник
4
Опубликуйте свою полную конфигурацию. У каждого server {}должна быть своя listenдиректива.
Marki555
Если вы что-то редактировали на сайтах с поддержкой и соединение неожиданно закрылось, вы можете закончить с автоматическим сохранением файла из текстового редактора, так что вы закончите с дублированием почти всех конфигураций, просто удалите этот файл (для nano file.save)
LuisF

Ответы:

198

Вероятно, у вас есть другие файлы (например, defaultконфигурация), /etc/nginx/sites-enabledкоторые необходимо удалить.

Эта проблема вызвана повторением default_serverпараметра, указанного в одной или нескольких listenдирективах в ваших файлах. Скорее всего, вы обнаружите, что эта противоречащая директива читается примерно так:

listen 80 default_server;

В документации основного модуля nginxlisten говорится:

default_serverПараметр, если он присутствует, приведет к серверу стать сервером по умолчанию для указанной address:portпары. Если ни одна из директив не имеет default_serverпараметра, то первый сервер с address:portпарой будет сервером по умолчанию для этой пары.

Это означает, что serverв вашей конфигурации должен быть другой файл или блок, определенный default_serverдля порта 80. nginx обнаруживает это сначала перед вашим mysite.comфайлом, поэтому попробуйте удалить или изменить эту другую конфигурацию.

Если вы не можете найти, где установлены эти директивы и параметры, попробуйте выполнить поиск следующим образом:

grep -R default_server /etc/nginx
Давиджб
источник
Спасибо. Это действительно помогло.
Кушик Дас
31
Чтобы было ясно, это default_serverключевое слово может появляться только в одной конфигурации - вы можете определить несколько сайтов с помощьюlisten 80;
Eborbob
1
Спасибо, вы мне помогли. В моем случае я нашел дубликат в /etc/nginx/sites-enabled/default.save
Эндрю Гроу
1
В дополнение к комментарию @Eborbob default_serverпараметр может появляться только один раз для каждой address:portпары. Это означает, что возможно (и обычно) default_serverприсутствовать несколько раз в общей конфигурации nginx, но применительно к разным IP-адресам / портам.
davidjb
2
команда grep была просто билетом. это простые вещи, спасибо
FireDragon
6

ОС Debian 10 + nginx. В моем случае я отключил страницу "по умолчанию" как:

  1. cd / etc / nginx / с поддержкой сайтов
  2. отменить связь по умолчанию
  3. перезапуск службы nginx
Навид Насир
источник
это работает со мной. Спасибо
абдельхамед абдин
5

Выполните это на терминале, чтобы увидеть конфликтующие конфигурации, прослушивающие один и тот же порт:

grep -R default_server /etc/nginx
Эдуардо А. Фернандес Диас
источник
4

Если вы используете Digital Ocean, это означает, что вам нужно перейти в / etc / nginx / sites-enabled /, а затем УДАЛИТЬ с помощью rm -R digitalocean и по умолчанию

Он исправил это для меня!

Изображение консоли в Windows 10 с использованием Bitvise

user1465132
источник
Это был простой ответ, который помог мне. Мне пришлось зайти в / etc / nginx / sites-enabled /, а rm -R previousServerFolderNameзатем сделать так, sudo service nginx restartчтобы systemctl status nginxшоу было «активным (запущено)»
Роли Поли