Come iniziare a utilizzare httpd con l'attivazione socket (systemd)?


14

Il server httpd apache è raramente necessario su uno dei nostri piccoli server, quindi sarebbe bello avviarlo tramite l'attivazione socket da systemd (e successivamente arrestarlo quando non si verificava traffico per qualche tempo). È possibile e, se sì, come?


Rielaborato quanto sopra e la modifica è scaduta a 5 minuti. Gli effetti pratici potrebbero non essere utili. Un client deve connettersi con un comando 'startup' prima di effettuare richieste normali. Il client non sa in anticipo se httpd è attivo, quindi il comando di avvio deve essere inviato prima di qualsiasi normale richiesta. Il ritardo sarà elevato. Nella vita reale, i ragni e i robot del mondo possono mantenere l'apache perpetuamente. La domanda potrebbe essere riformulata per consentire risposte come "usa un server http leggero come lighthttpd e lascialo sempre attivo".
rleir,

Risposte:


2

Questo è possibile con Apache 2.5 con mod_systemd .

Per le versioni precedenti di Apache, è possibile utilizzare systemd-socket-proxyd (8) ma questo non interromperà automaticamente il servizio Apache dopo un timeout.


Questo è effettivamente implementato nel core del server , non in mod_systemd . (Quindi la costruzione di mod_systemd per Apache 2.4 non ti consentirà l'attivazione del socket.)
Julian

0

File:

httpd.socket

Soddisfare:

[Socket]
ListenStream=80
ListenStream=0.0.0.0:80
#BindIPv6Only=ipv6-only
After=network.target
Requires=network.target

[Install]
WantedBy=sockets.target

Assicurati che il servizio apache sia anche chiamato httpd.


questo non funziona perché la porta non viene inoltrata a httpd.service da httpd.socket
Edward Torvalds
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.