Как начать использовать httpd с активацией сокета (systemd)?


14

Сервер Apache httpd редко требуется на одном из наших небольших серверов, поэтому было бы неплохо запустить его через активацию сокета с помощью systemd (а затем остановить его, когда в течение некоторого времени не было трафика). Возможно ли это и если да, то как?


Перефразировано выше, и время редактирования истекло на 5 минут. Практические эффекты могут быть бесполезны. Клиент должен подключиться с помощью команды запуска, прежде чем делать обычные запросы. Клиент заранее не знает, работает ли httpd, поэтому команду запуска необходимо отправить перед любыми обычными запросами. Задержка будет высокой. В реальной жизни пауки и боты мира могут постоянно поддерживать апач. Вопрос можно перефразировать, чтобы дать ответы типа «используйте легкий http-сервер, такой как lighthttpd, и оставляйте его всегда включенным».
Rleir

Ответы:


2

Это возможно с Apache 2.5 с mod_systemd .

Для более старых выпусков Apache вы можете использовать systemd-socket-proxyd (8), но это не приведет к автоматической остановке службы Apache после истечения времени ожидания.


На самом деле это реализовано в ядре сервера , а не в mod_systemd . (Таким образом, сборка mod_systemd для Apache 2.4 не даст вам активацию сокета.)
Julian

0

Файл:

httpd.socket

Содержание:

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

[Install]
WantedBy=sockets.target

Убедитесь, что служба apache также называется httpd.


это не работает, потому что порт не перенаправляется на httpd.service с httpd.socket
Эдвард Торвальдс,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.