3

毎日午前 3 時から午前 4 時まで「503 Service Unavailable」を配信するように nginx を構成するにはどうすればよいですか?

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 に答える