nginx- errore del server predefinito duplicato


105

Nel mio registro errori ottengo

[emerg] 10619 # 0: un server predefinito duplicato per 0.0.0.0:80 in /etc/nginx/sites-enabled/mysite.com:4

sulla linea 4 ho:

server_name mysite.com   www.mysite.com;

Eventuali suggerimenti?


4
Pubblica la tua configurazione completa. Ciascuno server {}dovrebbe avere la propria listendirettiva.
Marki555

Se stavi modificando qualcosa in siti abilitati e la connessione si è chiusa in modo imprevisto, potresti finire con un file di salvataggio automatico dall'editor di testo, quindi finirai con quasi tutte le configurazioni duplicate, basta eliminare quel file (per nano file.save)
LuisF

Risposte:


197

Probabilmente hai altri file (come la defaultconfigurazione) /etc/nginx/sites-enabledche devono essere rimossi.

Questo problema è causato da una ripetizione del default_serverparametro fornito a una o più listendirettive nei file. Probabilmente scoprirai che questa direttiva in conflitto legge qualcosa di simile a:

listen 80 default_server;

Come documentazione del modulo principale di nginx per glilisten stati:

Il default_serverparametro, se presente, farà diventare il server il server predefinito per la address:portcoppia specificata . Se nessuna delle direttive ha il default_serverparametro, il primo server con la address:portcoppia sarà il server predefinito per questa coppia.

Ciò significa che deve esserci un altro file o serverblocco definito nella configurazione con default_serverimpostato per la porta 80. nginx lo rileva prima del mysite.comfile, quindi prova a rimuovere o modificare l'altra configurazione.

Se hai difficoltà a trovare dove sono impostate queste direttive e parametri, prova una ricerca in questo modo:

grep -R default_server /etc/nginx

Grazie. Ha davvero aiutato.
Koushik Das

30
Giusto per essere chiari, è la default_serverparola chiave che può apparire solo in una configurazione - puoi definire più siti conlisten 80;
Eborbob

1
Grazie, mi hai aiutato. Nel mio caso ho trovato un dublicate in /etc/nginx/sites-enabled/default.save
Andrew Grow

1
Oltre al commento di @ Eborbob, il default_serverparametro può apparire solo una volta per ogni address:portcoppia. Ciò significa che è possibile (e comune) essere default_serverpresenti più volte in una configurazione nginx complessiva, ma applicando a diversi IP / porte.
davidjb

2
il comando grep era solo il ticket. sono le cose semplici, grazie
FireDragon

6

Sistema operativo Debian 10 + nginx. Nel mio caso, ho scollegato la pagina "predefinita" come:

  1. cd / etc / nginx / sites-enabled
  2. scollega predefinito
  3. riavvio del servizio nginx

funziona con me. Grazie
Abdelhamed Abdin

5

Eseguilo dal terminale per vedere le configurazioni in conflitto che ascoltano la stessa porta:

grep -R default_server /etc/nginx

4

Se sei su Digital Ocean questo significa che devi andare su / etc / nginx / sites-enabled / e poi RIMUOVERE usando rm -R digitalocean e default

L'ha risolto per me!

Immagine della console su Windows 10 utilizzando Bitvise


Questa è stata la semplice risposta che ha funzionato per me. Ho dovuto andare su / etc / nginx / sites-enabled / e rm -R previousServerFolderNamepoi fare sudo service nginx restartper rendere lo systemctl status nginxspettacolo "attivo (in esecuzione)"
Roly Poly
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.