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?

Ymn
źródło
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
davidjb
źródło
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
Navid Nasir
źródło
to działa ze mną. Dzięki
abdelhamed abdin
5

Wykonaj to na terminalu, aby zobaczyć sprzeczne konfiguracje nasłuchujące na tym samym porcie:

grep -R default_server /etc/nginx
Eduardo A. Fernández Díaz
źródło
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

user1465132
źródło
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