Nginx non riesce a ricaricare - come rintracciare il perché?


96

Ciao ho avuto il mio server Nginx funzionante alla grande sul server Ubuntu 12.04 per un po '.

A poco a poco mi sono imbattuto in vari bit e sono riuscito a ottimizzare i tempi di caricamento sulla mia pagina wordpress.

Dopo aver apportato alcune modifiche al mio file hosts, ho deciso di:

sudo /etc/init.d/nginx reload

A cui ottengo:

  • Ricarica nginx configuration nginx [fail]

Non vengono fornite ulteriori informazioni o ragionamenti. Come posso riavviare il mio server in modo che stampa eventuali dichiarazioni di errore durante il ricaricamento in modo da poter iniziare a rintracciare l'errore.

Per una domanda bonus:

Per quei amministratori di sistema Nginx, quando hai apportato una serie di modifiche agli host e hai bloccato alcuni altri bit e all'improvviso il tuo server nginx non si ricaricherà (per inciso tutto sembra essere ancora in esecuzione!) Come inizi il tuo approccio all'isolamento perché o iniziare a scomporre le cose per eseguire il debug!


4
Controlla la sintassi con sudo nginx -t(o sudo nginx -p /etc/nginx -c nginx.confdove /etc/nginxsono il prefisso di configurazione e nginx.confil file di configurazione principale).
Lekensteyn,

anche sudo nginx -s ricaricare mi ha dato una lettura!
Huw

Risposte:


145

Controlla syslog (/ var / log / syslog) per i messaggi sui problemi del file di configurazione.

Dalla riga di comando è possibile eseguire:

nginx -c /etc/nginx/nginx.conf -t

per fare in modo che nginx controlli la tua configurazione per errori.


ah ah! molto utile mi sembra di ottenere: posizione "/ blog / wp-admin" è fuori posizione "/blog/.*\.php$" in /etc/nginx/site-configs/wordpress.conf:1 ... interessante , mi dà qualcosa da fare!
Huw

2
ARGH! Tre ore di ricerche e si scopre che mi ero perso un; Grazie per tutto l'aiuto, si è rivelato essenziale nel rintracciarlo. Per inciso, se qualcuno dovesse mai rispondere a questa domanda dopo aver seguito i post pubblicati da Ars Technica sul Web. Penso di averli attraversati con un pettine a denti fini ora!
Huw

4
l'esecuzione di questo comando mi dà nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfule tuttavia non riesco ancora ad avviare nginx
Bill Garrison,

1
@BillGarrison controlla syslog e il log degli errori di nginx per maggiori informazioni
Dlloyd


7

Probabilmente dovresti verificare la presenza di errori in /var/log/nginx/error.log.

Nel mio caso non ho aggiunto la porta per ipv6. Dovresti anche fare questo (nel caso in cui tu stia eseguendo nginx su una porta diversa da 80): listen [::]:8000 default_server ipv6only=on;


1
Nota: se le autorizzazioni sono errate /var/log/nginx/error.log, nginx non sarà in grado di scrivere l'errore e fallirà silenziosamente. Controllare la configurazione come nella risposta accettata ( nginx -c /etc/nginx/nginx.conf -t) aiuterà.
user898763452,

5

Ho eseguito questi comandi per ripristinare il funzionamento di nginx:

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 

nginx ora funziona !!


2
Non è necessario rimuovere ed eliminare, solo eliminare. E difficile sapere se questo sta per rispondere alla domanda poiché l'eliminazione rimuoverà tutti i file di configurazione.
Pantera,

1
Idealmente - e per altri utenti avrei preferito ottenere la massima quantità di letture sul luogo in cui si era verificato l'errore e riparare la mia installazione corrente invece di eliminare e ricominciare da zero
Huw

1
@ bodhi.zazen Ho corretto la mia risposta. E quanto a ciò che ha detto "Huw", sono d'accordo. È solo che ero all'inizio dell'installazione e della configurazione, nginxquindi non è stato un grosso problema rimuoverlo e ricominciare da capo invece di rintracciare l'errore. Grazie ad entrambi per il tuo insite.
Aaron Lelevier,

nel mio caso ho dovuto solo iniziare a usare questo comando sudo /etc/init.d/nginx start
Sizzling Code

3

Controlla la tua /etc/nginx/sites-available/defaulto qualsiasi copia di essa che stai utilizzando e assicurati di rimuovere il commento (rimuovere #) tutto ciò di }cui potresti aver bisogno in relazione a quello {che probabilmente non era stato rimosso. Questo era il mio problema.


2

È necessario eliminare nginx quindi digitare alla riga di comando:

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default

Vuoi dire apt-get purge?
RolandiXor

2

riaprire tutti i file, usando

nginx -s reopen

quindi utilizzare

nginx -s reload

Come aiuta nginx a dimostrarlo, ricaricare nginx inviando il segnale a master process.it dovrebbe funzionare.

Richiesta: si prega di non fornire purgecomandi senza cautela, poiché potrebbe causare problemi ai principianti (tutte le configurazioni andranno perse) .... Un grosso problema.


1

Se ti dà tali errori puoi dare un'occhiata journalctl -xe.
Ha un sacco di informazioni su ciò che è accaduto in una questione di sistema operativo.
puoi trovare la linea o semplicemente journalctl -xe | grep nginxtrovare quello che è successo a nginx quando ha provato a eseguirsi da solo.

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.