nginx - дублікат помилки сервера за замовчуванням


105

У моєму журналі помилок я отримую

[emerg] 10619 # 0: дублікат сервера за замовчуванням для 0,0.0.0:80 в /etc/nginx/sites-enabled/mysite.com:2

У рядку 4 у мене є:

server_name mysite.com   www.mysite.com;

Будь-які пропозиції?


4
Опублікуйте повну конфігурацію. Кожен server {}повинен мати свою listenдирективу.
Marki555

Якщо ви щось редагували на сайтах із включеним веб-сайтом, і з'єднання несподівано закрилося, ви можете закінчити автоматичним збереженням файлу там із текстового редактора, тому ви закінчите майже всі дублювання конфігурацій, просто видаліть цей файл (для nano file.save)
LuisF

Відповіді:


196

Можливо, у вас розміщені інші файли (наприклад, defaultконфігурація)/etc/nginx/sites-enabled які потрібно видалити.

Ця проблема викликана повторенням default_serverпараметра, поданого до однієї або декількох listenдиректив у ваших файлах. Ви, ймовірно, виявите, що ця конфліктна директива звучить приблизно так:

listen 80 default_server;

Як документація основного модуля nginx дляlisten станів:

default_serverПараметр, якщо він присутній, призведе до сервера стати стандартним сервером для зазначеної address:portпари. Якщо жодна з директив не має default_serverпараметра, то перший сервер з address:portпарою буде сервером за замовчуванням для цієї пари.

Це означає, що повинен бути інший файл або serverблок, визначений у вашій конфігурації з default_serverнабором для порту 80. nginx стикається з цим першим перед вашимmysite.com файлом, тому спробуйте видалити або відрегулювати цю іншу конфігурацію.

Якщо ви намагаєтеся знайти місце, де ці директиви та параметри встановлені, спробуйте здійснити пошук так:

grep -R default_server /etc/nginx

Дякую. Це справді допомогло.
Кушик Дас

29
Щоб було зрозуміло, це default_serverключове слово, яке може з’являтися лише в одній конфігурації - у вас може бути кілька сайтів, визначенихlisten 80;
Eborbob

1
Спасибі, ви мені допомагаєте. У моєму випадку я знайшов дублікат у /etc/nginx/sites-enabled/default.save
Andrew Grow

1
На додаток до коментаря @ Eborbob, default_serverпараметр може з’являтися лише один раз для кожної address:portпари. Це означає, що можна (і загальноприйнято) default_serverприсутня кілька разів у загальній конфігурації nginx, але застосовуватись до різних IP / портів.
davidjb

2
команда grep була лише квитком. це прості речі, дякую
FireDragon


5

ОС Debian 10 + nginx. У моєму випадку я від’єднав сторінку "за замовчуванням" як:

  1. cd / etc / nginx / включено сайти
  2. від’єднати за замовчуванням
  3. перезапуск служби nginx

4

Якщо ви перебуваєте в цифровому океані, це означає, що вам потрібно перейти до / etc / nginx / включеним сайтам /, а потім ВИДАЛИТИ, використовуючи rm -R digitalocean та за замовчуванням

Це зафіксував це для мене!

Зображення консолі в Windows 10 за допомогою Bitvise


Це була проста відповідь, яка працювала на мене. Мені довелося зайти / etc / nginx / включено сайти /, а rm -R previousServerFolderNameпотім зробити, sudo service nginx restartщоб зробити systemctl status nginxшоу "активним (працює)"
Roly Poly
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.