그래서 내가 쓰고있는 앱에서 Ajax와 같은 것을 로컬로 테스트 할 때 종종 sleep
문장을 사용하여 서버 측 스크립트에 지연을 추가하고 싶습니다 . 느린 연결 등을 시뮬레이트하는 데 도움이됩니다.
Nginx 설정에서 제공하는 플랫 HTML 파일에서 작동하는 유사한 지연 동작을 직접 지정하는 방법이 있습니까?
나는 당신이 네트워크 레벨에서 비슷한 지연 시뮬레이션을 할 수 있다는 것을 알고 있습니다 ( here 참조 ).
답변
에코 모듈을 시도해야합니다.
답변
추가하고 싶습니다 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에서 테스트)
답변
에코 모듈을 사용하는 방법에 대한 자세한 설명을 제공하십시오.
기본 설정에서 시작하는 경우 다음과 같이 정적 파일과 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_sleep
및 echo_exec
을 사용 하십시오.
답변
백엔드 서버가 요청을 받도록 설정 한 다음 서버에서 응답을 지연시킬 수 있습니다. Nginx 프록시는 백엔드 서버에 요청을 프록시합니다.
답변
nginx의 응답을 지연시킬 방법이 없습니다 (IHMO). 이러한 기능을 사용하려면 웹 서버가 아닌 응용 프로그램을 재 작업해야합니다.