3

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

4

2 回答 2

4

然而,只检查维护标志要简单得多。

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

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

于 2013-07-16T06:54:04.330 回答
1

SSI 模块有一个名为$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;
    }
}
于 2013-07-14T22:20:59.790 回答