Nginxにアセットを提供する前に数秒間待機するように指示するにはどうすればよいですか?


14

したがって、私が書いているアプリでAjaxなどをローカルでテストしているとき、sleepステートメントを使用してサーバー側スクリプトに遅延を追加することがよくあります。遅い接続などをシミュレートするのに役立ちます。

Nginx configで同様の遅延動作を直接指定する方法はありますか?それは提供しているフラットなHTMLファイルで動作しますか?

ネットワークレベルで同様の遅延シミュレーションを実行できることは承知しています(こちらを参照)


Nginxでさらに面倒になると思いませんか?
デュークライオン

回答:



2

astlockの答えに追加したいのは、プレーンで返信したい場合returnは注意が必要であることに注意してください:echo標準returnディレクティブではなくecho_sleep、次のように遅延して応答した後に使用する必要があります:

location = /slow-reply {
  echo_sleep 5.0;
  #return 200 'this response would NOT be delayed!';      
  echo 'this text will come in response body with HTTP 200 after 5 seconds';
}

(openresty / 1.7.10.2でテスト済み)


0

echoモジュールの使用方法の詳細を説明します。

基本的な設定から開始する場合、静的ファイルとPHPファイルをロードします。次のようなものがあります。

location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass php;
}

次に、これを次のように変換して、静的要求とPHP要求の両方に遅延を追加できます。

# Static files
location / {
    echo_sleep 5;
    echo_exec @default;
}
location @default {}

// PHP files
location ~ \.php$ {
    echo_sleep 5;
    echo_exec @php;
}
location @php {
    include fastcgi.conf;
    fastcgi_pass php;
}

これは、必要に応じて変更できます。基本的に、各ロケーションブロックを名前付きの@locationに移動します。次に、echo_sleepecho_execを元のロケーションブロックで使用します。


-1

リクエストを受信するようにバックエンドサーバーを設定してから、サーバーでの応答を遅らせることができます。Nginxはリクエストをバックエンドサーバーにプロキシします。


-3

nginxからの応答を遅らせる方法(IHMO)はありません。そのような機能を有効にするには、Webサーバーではなくアプリケーションを作り直す必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.