Jak zacząć korzystać z httpd z aktywacją gniazda (systemd)?

14

Serwer httpd Apache jest rzadko potrzebny na jednym z naszych małych serwerów, więc dobrze byłoby go uruchomić poprzez aktywację gniazda przez systemd (a później go zatrzymać, gdy przez pewien czas nie pojawił się ruch). Czy to możliwe, a jeśli tak, to w jaki sposób?

Daniel
źródło
Zmieniłem kolejność powyższych, a limit czasu upłynął po 5 minutach. Praktyczne efekty mogą nie być przydatne. Klient musi połączyć się z poleceniem „uruchomienia” przed wykonaniem normalnych żądań. Klient nie wie z wyprzedzeniem, czy httpd działa, więc polecenie startowe musi zostać wysłane przed normalnymi żądaniami. Opóźnienie będzie duże. W prawdziwym życiu pająki i boty świata mogą nieustannie apaczować. Pytanie można przeredagować, aby umożliwić odpowiedzi typu „użyj lekkiego serwera http, takiego jak lighthttpd i pozostaw go zawsze aktywnym”.
rleir

Odpowiedzi:

2

Jest to możliwe w Apache 2.5 z mod_systemd .

W starszych wersjach Apache możesz użyć systemd-socket-proxyd (8), ale nie zatrzyma to automatycznie usługi Apache po upływie limitu czasu.

Siosm
źródło
Jest to faktycznie zaimplementowane w rdzeniu serwera , a nie w mod_systemd . (Więc zbudowanie mod_systemd dla Apache 2.4 nie spowoduje aktywacji gniazda.)
Julian
0

Plik:

httpd.socket

Zawartość:

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

[Install]
WantedBy=sockets.target

Upewnij się, że usługa Apache jest również nazywana httpd.

dizzi90
źródło
to nie działa, ponieważ port nie jest przekierowany do httpd.service z httpd.socket
Edward Torvalds