Você deve tentar um módulo de eco.
Então, quando estou testando localmente coisas como Ajax em aplicativos que estou escrevendo, muitas vezes gosto de adicionar um atraso em scripts do lado do servidor usando uma instrução sleep
. Isso ajuda a simular conexões lentas, etc.
Existe uma maneira de especificar um comportamento de atraso similar diretamente na configuração do Nginx que funcionaria para os arquivos HTML simples que está sendo veiculado?
Estou ciente de que você pode fazer uma simulação de atraso semelhante no nível da rede (consulte aqui ) mas parece bastante confuso e nunca funcionou muito bem para mim.
Gostaria de adicionar à resposta do astlock que, se você quiser responder com um return
simples, observe que há uma ressalva: você precisa usar echo
, não uma diretiva return
padrão, depois de echo_sleep
responder com um atraso, como este:
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';
}
(testado em openresty / 1.7.10.2)
Fornecendo uma explicação mais detalhada de como você pode usar o módulo echo:
Se você está começando a partir de uma configuração básica, isso carrega arquivos estáticos e arquivos PHP, com algo parecido com isto:
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass php;
}
Isso pode ser convertido em algo como isto para adicionar um atraso a solicitações estáticas e 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;
}
Isso pode obviamente ser modificado para o que você quiser. Basicamente, mova cada bloco de localização para um @location nomeado. Em seguida, use echo_sleep
e echo_exec
no bloco de localização original.
você pode definir um servidor back-end para receber a solicitação e, em seguida, atrasar a resposta no servidor. Nginx proxy o pedido para o servidor backend.
Não há como (IHMO) atrasar a resposta do nginx. Você precisa refazer seu aplicativo e não seu servidor da Web para ativar esse recurso.
Tags nginx