Вопрос: Как сообщить Nginx подождать несколько секунд, прежде чем отыгрывать актив?


Поэтому, когда я локально тестирую такие вещи, как Ajax в приложениях, которые я пишу, мне часто нравится добавлять задержки на сценарии на стороне сервера, используя sleep заявление. Это помогает имитировать медленные соединения и т. Д.

Есть ли способ указать аналогичное поведение задержки непосредственно в конфигурации Nginx, которая будет работать для плоских файлов HTML, которые она обслуживает?

Я знаю, что вы можете провести аналогичное симуляцию задержки на сетевом уровне (см. Вот), но он кажется довольно грязным и никогда не работал очень хорошо для меня.


11
2017-09-07 11:17


Источник


Разве вы не думаете, что это было бы еще более грязно с Nginx? - DukeLion
Смотрите также: stackoverflow.com/questions/14752943/... - sanmai


Ответы:


Вы должны попробовать модуль эха.


16
2017-09-07 21:14



Brilliant. Это именно то, что мне нужно :-) Знал, должно быть, путь! - BaronVonKaneHoffen


Я хотел бы добавить ответ астролога что если вы хотите ответить простым 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';
}

(Проверено на открытом воздухе / 1.7.10.2)


2
2017-09-04 11:12





вы можете настроить серверный сервер для получения запроса, а затем задержать ответ на сервере. Nginx прокси-сервер запрашивает сервер.


-1
2017-11-24 08:18





Нет способа (IHMO) отложить ответ от nginx. Вы должны переделать свое приложение, а не веб-сервер, чтобы включить такую ​​функцию.


-3
2017-09-07 11:41