nginx - zduplikowany domyślny błąd serwera


105

W moim dzienniku błędów otrzymuję

[emerg] 10619 # 0: zduplikowany serwer domyślny dla 0.0.0.0:80 w /etc/nginx/sites-enabled/mysite.com:4

w linii 4 mam:

server_name mysite.com   www.mysite.com;

Jakieś sugestie?


4
Opublikuj pełną konfigurację. Każdy server {}powinien mieć własną listendyrektywę.
Marki555

Jeśli edytowałeś coś w witrynach z włączoną obsługą i połączenie zostało nieoczekiwanie zamknięte, możesz zakończyć z automatycznym zapisywaniem tam pliku z edytora tekstu, więc skończysz z powieleniem prawie wszystkich konfiguracji, po prostu usuń ten plik (dla pliku nano. Zapisz)
LuisF

Odpowiedzi:


198

Prawdopodobnie masz inne pliki (takie jak defaultkonfiguracja) znajdujące się w, /etc/nginx/sites-enabledktóre należy usunąć.

Ten problem jest spowodowany powtórzeniem default_serverparametru dostarczonego do co najmniej jednej listendyrektywy w plikach. Prawdopodobnie zauważysz, że ta sprzeczna dyrektywa brzmi podobnie do:

listen 80 default_server;

Jako dokumentacja podstawowego modułu nginx dlalisten stanów:

default_serverParametr, jeśli występuje, spowoduje, że serwer, aby stać się domyślnym serwerem dla określonej address:portpary. Jeśli żadna z dyrektyw nie ma default_serverparametru, to pierwszy serwer z address:portparą będzie domyślnym serwerem dla tej pary.

Oznacza to, że musi istnieć inny plik lub serverblok zdefiniowany w twojej konfiguracji z default_serverustawieniem dla portu 80. nginx napotyka to najpierw przed twoim mysite.complikiem, więc spróbuj usunąć lub dostosować tę inną konfigurację.

Jeśli masz problem ze znalezieniem miejsca, w którym te dyrektywy i parametry są ustawione, spróbuj wyszukać:

grep -R default_server /etc/nginx

Dzięki. To naprawdę pomogło.
Koushik Das

31
Dla jasności jest to default_serversłowo kluczowe, które może występować tylko w jednej konfiguracji - możesz zdefiniować wiele witryn za pomocąlisten 80;
Eborbob

1
Dzięki, pomogłeś mi. W moim przypadku znalazłem publikatora w /etc/nginx/sites-enabled/default.save
Andrew Grow

1
W nawiązaniu do komentarza @ Eborbob, default_serverparametr może pojawić się tylko raz dla każdej address:portpary. Oznacza to, że jest możliwe (i powszechne) default_serverwystępowanie wiele razy w ogólnej konfiguracji nginx, ale dotyczy to różnych adresów IP / portów.
davidjb

2
polecenie grep było tylko biletem. to proste, dzięki
FireDragon

6

OS Debian 10 + nginx. W moim przypadku odłączyłem „domyślną” stronę jako:

  1. cd / etc / nginx / sites-enabled
  2. odłącz domyślne
  3. restart usługi nginx

to działa ze mną. Dzięki
abdelhamed abdin


4

Jeśli korzystasz z Digital Ocean, oznacza to, że musisz przejść do / etc / nginx / sites-enabled /, a następnie USUNĄĆ za pomocą rm -R digitalocean i default

Naprawiło to dla mnie!

Zdjęcie konsoli w systemie Windows 10 przy użyciu Bitvise


To była prosta odpowiedź, która mi pomogła. Musiałem przejść do / etc / nginx / sites-enabled /, a rm -R previousServerFolderNamenastępnie zrobić program, sudo service nginx restartaby systemctl status nginxprogram był „aktywny (działający)”
Roly Poly
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.