ソケットアクティベーション(systemd)でhttpdの使用を開始するには?


14

apache httpdサーバーが私たちの小さなサーバーの1つで必要になることはめったにないので、systemdによるソケットアクティベーションを介して起動する(そしてしばらくトラフィックが発生しなくなったときに停止する)のは良いことです。これは可能ですか?もし可能なら、どのように?


上記を言い換えると、編集は5分でタイムアウトしました。実際の効果は役に立たないかもしれません。クライアントは、通常の要求を行う前に「startup」コマンドで接続する必要があります。クライアントは、httpdが起動しているかどうかを事前に把握していないため、通常の要求の前に起動コマンドを送信する必要があります。遅延が大きくなります。実際の生活では、世界のクモとボットは永続的にapacheを維持します。この質問は、「lighthttpdのような軽量のhttpサーバーを使用し、常にアップのままにする」などの回答を可能にするように言い換えることができます。
rleir

回答:


2

これは、mod_systemdを使用したApache 2.5で可能です。

古いApacheリリースの場合、systemd-socket-proxyd(8)を使用できますが、これはタイムアウト後にApacheサービスを自動的に停止しません。


これは実際にはmod_systemdではなく、サーバーコアに実装されます。(したがって、Apache 2.4用のmod_systemdをビルドしても、ソケットはアクティブになりません。)
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.socketからhttpd.serviceに転送されていないため、これは動作しますしない
エドワード・トーバルズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.