Как крупные сайты делают страницу уведомления об обслуживании? - программирование

Как крупные сайты делают страницу уведомления об обслуживании?

Я собираюсь обновить весь сайт. Я ищу советы о том, как технологические стартапы выполняют свой процесс обслуживания.

Я думаю об использовании htaccess. Однако, что только перенаправление пользователей, к которым обращаются, например, index.php к maintenance.php, правильно? Если пользователь получает доступ к dashboard.php, перенаправления не будет.

Во время обслуживания мне нужно получить доступ к index.php(ТОЛЬКО ME). Кто-нибудь, кто работал в технических начинающих, должен поделиться своим решением? Очень благодарен.

4b9b3361

Ответ 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

Ответ 2

Поскольку вы упоминаете .htaccess, я предполагаю, что вы используете Apache в качестве своего веб-сервера. Как упоминалось выше, вы можете использовать .htaccess, или вы можете редактировать конфигурацию VirtualHost для этого конкретного сайта.

В любом случае я бы рекомендовал использовать mod_rewrite, как рекомендовал Джонатан Сэмпсон, однако вы хотите быть очень осторожным, чтобы убедиться, что вы отправляете коды статуса, а также потому, что важные боты, такие как GoogleBot, хотят видеть 503, который сообщает им, что вы в настоящее время находитесь в обслуживании.

Есть несколько довольно четких инструкций для выполнения именно того, что вы хотите в этой статье AskApache.