Come ricaricare la configurazione di Apache per un sito senza riavviare Apache


Risposte:


182

dovrebbe essere possibile usando il comando

sudo /etc/init.d/apache2 reload

spero che aiuti


11
Sono abbastanza sicuro che questo non sia corretto. Guardando lo script init.d di un server Ubuntu, ricaricare si riferisce al grazioso riavvio. Ciò significa che ricaricare è in realtà un riavvio, ma con grazia. La mia opinione è che Apache non può essere ricaricato senza interrompere il servizio.
Steffen Nielsen

4
La risposta di Aruman è quella corretta. La maggior parte degli script init di Apache invia SIGHUP che equivale a "apachectl restart", che l'OP ha chiesto espressamente di evitare. Altri script init di Apache inviano SIGUSR1 che equivale a "apachectl graceful", che è anche un riavvio, ma fatto con più grazia, ed è ciò che fornisce la risposta di Aruman.
Bryan Larsen,

@SteffenNielsen Penso che tu abbia ragione ... Alcuni andranno bene con l'uso di un bilanciamento del carico, disabilitando quello da riavviare, riavviando, occupandosi della versione di db, quindi facendo lo stesso per l'altro server / contenitore Apache. K8s elimina alcuni di questi problemi.
Ray Foss,

1
Ok, ecco cosa succede, il processo principale di apache2 non cambia, ma i bambini o i lavoratori (non conosco la terminologia corretta) ricominciano tutti, quei PID in effetti cambiano.
Elijah Lynn

1
E penso che in questo caso aggraziato significhi solo che quei bambini lavoratori finiscono di servire le loro richieste prima di essere uccisi e rigenerati.
Elijah Lynn


28

Fare

apachectl -k graceful

Controlla questo link per maggiori informazioni: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Questo riavvierà il demone httpd di Apache, che la domanda ha chiesto espressamente di evitare.
cs01,

6
@ cs01 Dove leggi che il demone httpd verrà riavviato? Tutto ciò che ho letto sul link fornito nella risposta dice cose comeapachectl graceful: Gracefully restarts the Apache daemon by sending it a SIGUSR1. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.
Tyler Collier,

5
La prima frase della documentazione che hai pubblicato dice proprio questo, no?
cs01,

3
@ cs01 Devi capire perché sono preoccupati per un riavvio. Ciò non è specificato, ma suppongo che non vogliano interrompere le connessioni, piuttosto che un riavvio in sé. Un riavvio grazioso farà questo bene nella maggior parte dei casi. Se ci sono connessioni di lunga durata, questo potrebbe essere un problema. È inoltre necessaria una buona definizione di riavvio, poiché tutto il riavvio grazioso fa reinizializzare il processo padre, ovvero il pid non cambia, dove come un normale riavvio abbatte l'intero albero del processo e ne genera uno nuovo. Pertanto la risposta di Tyler Collier è perfettamente legittima.
krad

7

Aggiornato per Apache 2.4, per non systemd (ad es. CentOS 6.x, Amazon Linux AMI) e per systemd (ad es. CentOS 7.x):

Esistono due modi per fare in modo che il processo apache ricarichi la configurazione, a seconda di ciò che vuoi fare con i suoi thread attuali, o consiglia di uscire quando è inattivo o ucciderli direttamente.

Si noti che Apache consiglia di utilizzare apachectl -kcome comando e per systemd il comando è sostituito dahttpd -k

apachectl -k graceful o httpd -k graceful

Apache consiglierà ai suoi thread di uscire quando è inattivo, quindi Apache ricarica la configurazione (non si chiude da solo), questo significa che le statistiche non vengono ripristinate.

apachectl -k restart o httpd -k restart

Questo è simile a stop, in quanto il processo uccide i suoi thread, ma poi ricarica il file di configurazione, piuttosto che uccidersi.

Fonte: https://httpd.apache.org/docs/2.4/stopping.html


apache 2.4.39 (win) non supporta httpd -k gracefulsolo httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Andreas Dietrich
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.