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:
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ć:
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:
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
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)”
server {}
powinien mieć własnąlisten
dyrektywę.Odpowiedzi:
Prawdopodobnie masz inne pliki (takie jak
default
konfiguracja) znajdujące się w,/etc/nginx/sites-enabled
które należy usunąć.Ten problem jest spowodowany powtórzeniem
default_server
parametru dostarczonego do co najmniej jednejlisten
dyrektywy w plikach. Prawdopodobnie zauważysz, że ta sprzeczna dyrektywa brzmi podobnie do:Jako dokumentacja podstawowego modułu nginx dla
listen
stanów:Oznacza to, że musi istnieć inny plik lub
server
blok zdefiniowany w twojej konfiguracji zdefault_server
ustawieniem dla portu 80. nginx napotyka to najpierw przed twoimmysite.com
plikiem, 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ć:
źródło
default_server
słowo kluczowe, które może występować tylko w jednej konfiguracji - możesz zdefiniować wiele witryn za pomocąlisten 80;
default_server
parametr może pojawić się tylko raz dla każdejaddress:port
pary. Oznacza to, że jest możliwe (i powszechne)default_server
występowanie wiele razy w ogólnej konfiguracji nginx, ale dotyczy to różnych adresów IP / portów.OS Debian 10 + nginx. W moim przypadku odłączyłem „domyślną” stronę jako:
źródło
Wykonaj to na terminalu, aby zobaczyć sprzeczne konfiguracje nasłuchujące na tym samym porcie:
źródło
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
źródło
rm -R previousServerFolderName
następnie zrobić program,sudo service nginx restart
abysystemctl status nginx
program był „aktywny (działający)”