在特定时间提供503服务不可用

时间:2013-07-14 19:34:44

标签: nginx

如何配置nginx每天凌晨3点到凌晨4点提供“503服务不可用”?

2 个答案:

答案 0 :(得分:4)

然而,仅仅检查维护标志就更简单了。

location / {
    if( -f $document_root/maintenance.flag ) {
        return 503;
    }
}

现在,当您进行维护时,我认为是由cron运行的,您可以创建该文件,并在完成后自行清理。它还有一个额外的好处,即您可以为非计划维护创建该文件。

答案 1 :(得分:1)

SSI Module有一个名为 $ date_gmt 的变量,您可以获得时间。使用该变量的一些if语句可能会有所帮助。

或者,你可以通过编译HTTPLuModule在Lua中写一些东西。 Lua将为您提供更多灵活性,可以在Nginx中执行更复杂的操作。缺点是你已经编译了模块。

我还没有测试过这段代码,但可能之类的东西可以帮助您入门。

location ~ / {
    set_by_lua $between_three_and_four '
        local time = os.date("*t")
        local between_three_and_four = false

        if time.hour == 3 then
            between_three_and_four = true
        end

        return between_three_and_four
    '

    if ($between_three_and_four) {
        return 503;
    }
}