Comment commencer à utiliser httpd avec l'activation de socket (systemd)?


14

Le serveur apache httpd est rarement nécessaire sur l'un de nos petits serveurs, il serait donc bien de le démarrer via l'activation de socket par systemd (et plus tard de l'arrêter quand aucun trafic ne s'est produit pendant un certain temps). Est-ce possible, et si oui comment?


Reformulé ce qui précède, et le montage a expiré à 5 minutes. Les effets pratiques peuvent ne pas être utiles. Un client doit se connecter avec une commande de «démarrage» avant de faire des requêtes normales. Le client ne sait pas à l'avance si httpd est activé, la commande de démarrage doit donc être envoyée avant toute demande normale. Le retard sera élevé. Dans la vraie vie, les araignées et les robots du monde peuvent perpétuellement garder Apache. La question pourrait être reformulée pour permettre des réponses comme «utiliser un serveur http léger comme lighthttpd et le laisser toujours en place».
rleir

Réponses:


2

C'est possible avec Apache 2.5 avec mod_systemd .

Pour les anciennes versions d'Apache, vous pouvez utiliser systemd-socket-proxyd (8) mais cela n'arrêtera pas automatiquement le service Apache après un délai d'expiration.


Ceci est en fait implémenté dans le cœur du serveur , pas dans mod_systemd . (Donc, la construction de mod_systemd pour Apache 2.4 ne vous permettra pas d'activer le socket.)
Julian

0

Fichier:

httpd.socket

Contenu:

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

[Install]
WantedBy=sockets.target

Assurez-vous que le service apache est également appelé httpd.


cela ne fonctionne pas car le port n'est pas transmis à httpd.service depuis httpd.socket
Edward Torvalds
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.