Як почати використовувати httpd з активацією сокета (systemd)?


14

Сервер apache httpd рідко потрібен на одному з наших невеликих серверів, тому було б непогано запустити його через активацію сокета системою (а пізніше зупинити його, коли протягом певного часу не траплявся трафік). Це можливо і якщо так, то як?


Переформульовано вище, а редагування вимкнулося на 5 хвилин. Практичні ефекти можуть бути не корисними. Клієнт повинен підключитися до команди "startup" перед тим, як робити звичайні запити. Клієнт не знає заздалегідь, чи не працює 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.