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.