Come riavviare nginx?


95

Per me, eseguo "killall nginx" e lo avvio da "sbin / nginx", qualcuno ha uno script di riavvio migliore?

A proposito: installo nginx dal sorgente, non trovo il comando 'service nginx' o /etc/init.d/nginx


1
Perché stai installando dal sorgente? I pacchetti Nginx sono disponibili per la maggior parte delle distribuzioni Linux server. Oppure potresti lanciare i tuoi pacchetti, ma non usare i pacchetti è un problema per la gestibilità.
Tom O'Connor,

a causa di mod_rails
larry

Risposte:


150

Il pacchetto nginx fornisce uno script /etc/init.d/nginx che fornisce la solita funzionalità start | stop | restart | reload ....

/etc/init.d/nginx restart

riavvierà nginx

come sarà

service nginx restart

modificare

Ecco un link a uno script che puoi usare come /etc/init.d/nginx.


2
Dipende dal tuo repository. Il sorgente Nginx non fornisce script di init, quindi se ti piace essere aggiornato e compilato dal sorgente dovrai prenderne uno dal wiki.
Martin Fjordvald,

1
Devo prendere più caffè prima di rispondere alle domande ...
user9517

a cosa punta il riavvio del servizio nginx ed è appropriato ricaricare qualcosa quando viene apportata una modifica a init.d / nginx? I miei due comandi (/etc/init.d/nginx e service nginx) sembrano non sincronizzati.
Danny,

@Danny: non so che ho scritto questo> 2 anni fa.
user9517

15

http://wiki.nginx.org/CommandLine

all'interno dei collegamenti sono presenti alcuni comandi per avviare e arrestare il server nginx

per iniziare nginx:

/usr/bin/nginx

per fermare nginx:

/usr/bin/nginx -s stop

/usr/bin dipende da dove installi nginx


4

Per qualche motivo, sul sistema incorporato su cui sto lavorando è:

systemctl restart nginx

1
Questa domanda e la maggior parte delle risposte hanno otto anni e sono obsolete. Questo è "qualche motivo". Questo è il modo corretto di farlo sugli attuali sistemi operativi Linux.
Michael Hampton

Ok, quindi forse non è vero solo per i sistemi embedded allora
cardamomo il

1

Dopo aver modificato i file di configurazione, lo riavvio in questo modo su OpenBSD:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

Il HUPsegnale lo fa rileggere i suoi file di configurazione, tailmostra se si sono verificati errori, li dateinserisce nel contesto (si è verificato un errore solo se il tempo da datecorrisponde al tempo dal registro) e sleep 1garantisce che ci siano nessuna condizione di competizione tra la lettura dal registro prima che nginx avesse avuto il tempo di scrivergli.

Ecco come appare:

Cns# kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && tail -2 /var/www/logs/error.log ; date
Tue Feb 12 10:58:52 PST 2013
2013/02/12 10:03:35 [emerg] 8120#0: directive "set" is not terminated by ";" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:226
2013/02/12 10:04:19 [emerg] 8120#0: invalid return code "$uri_def" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:231
Tue Feb 12 10:58:53 PST 2013
Cns# 

Il fatto che il tempo dal registro non sia tra i tempi stampati da dateindica che questa volta non si sono verificati errori e che la nuova configurazione è buona.


0

Puoi trovare gli script di init nel Wiki di NginX: http://wiki.nginx.org/Configuration#Init_Scripts

La funzione di riavvio esegue il comando seguente:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

Se hai installato nginx in / opt / nginx, sostituiscilo BASEDIR=con BASEDIR=/opt/nginx.


0

Di solito, i pacchetti installati dal sorgente non installano lo script di avvio in /etc/init.d/. Hai due opzioni.

1- È possibile cercare uno script nella directory del codice sorgente o sul sito Web e personalizzarlo se necessario.

2- È possibile copiare uno script di avvio per un altro pacchetto dal proprio sistema e personalizzarlo.

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.