Ответ 1
Мы используем LightTPD как веб-сервер, и я использую "mod_magnet", чтобы делать такие вещи. Mod_magnet позволяет мне обрабатывать запросы с использованием простых сценариев lua. У нас есть автоматическая задача, которая создаст пустой файл где-нибудь в файловой системе веб-сервера. Lua script проверяет наличие этого файла на каждом запросе и возвращает статическую страницу обслуживания, если файл найден. Важная часть script выглядит следующим образом:
--
-- 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
В script также есть конфигурация, позволяющая передавать конкретные IP-адреса, поэтому вы можете просматривать веб-сайт, например, из своей сети, когда все остальные просто получают страницу обслуживания.
Это решение работает очень хорошо, и из-за автоматизации это не имеет значения, если вам нужна страница обслуживания на одном или на многих веб-серверах.
Если вам интересно, вы можете найти дополнительную информацию о "mod_magnet" здесь:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMagnet