LightTPD を Web サーバーとして使用しており、「mod_magnet」を使用してそのようなことを行っています。Mod_magnet を使用すると、単純な lua スクリプトを使用してリクエストを処理できます。ウェブサーバーのファイルシステムのどこかに空のファイルを作成する自動タスクがあります。lua スクリプトは、リクエストごとにこのファイルの存在をチェックし、ファイルが見つかった場合は静的なメンテナンス ページを返します。スクリプトの重要な部分は次のようになります。
--
-- maintenance page
--
local config = {
['maintenance'] = {
['allow'] = {
'127.0.0.1' -- just an example IP address
}
}
}
if lighty.stat(lighty.env['physical.doc-root'] .. 'maintenance') then
tmp, _ = table.search(config.maintenance.allow, lighty.env['request.remote-ip'])
if not tmp then
-- maintenance modus
lighty.content = {
{ filename = lighty.env['physical.doc-root'] .. 'error/maintenance.html' }
}
return 503
end
end
スクリプトには、特定の IP アドレスを引き続き通過させるための構成も含まれているため、たとえば会社のネットワークから Web サイトを表示することができます。
このソリューションは非常にうまく機能し、自動化されているため、1 つまたは複数の Web サーバーでメンテナンス ページが必要かどうかは問題ではありません。
興味がある場合は、ここで「mod_magnet」に関する詳細情報を見つけることができます。
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMagnet