Em uma máquina de desenvolvimento local, tenho um proxy reverso nginx assim:
server {
listen 80;
server_name myvirtualhost1.local;
location / {
proxy_pass http://127.0.0.1:8080;
}
server {
listen 80;
server_name myvirtualhost2.local;
location / {
proxy_pass http://127.0.0.1:9090;
}
No entanto, se eu depurar meu aplicativo, a resposta pode demorar um tempo infinito, mas depois de 30 segundos recebo:
504 Gateway Time-out
como resposta.
Como posso desabilitar o tempo limite e fazer com que meu proxy reverso espere para sempre por uma resposta? E eu gosto que a configuração seja global, para que eu não precise configurá-la para cada proxy.
Pode não ser possível desativá-lo, mas uma solução viável é aumentar o tempo de execução. Em um site de tutorial do nginx , estava escrito:
e recarregue a configuração do nginx:
Eu usei um valor bastante grande que é improvável que aconteça,
999999
ou seja, usando unidades de tempo , para um dia via1d
.Esteja ciente de que definir o valor como
0
causará um erro de tempo limite do gateway imediatamente.É possível aumentar o tempo limite do nginx, para adicionar à resposta do @k0pernikus, o seguinte pode ser adicionado ao seu bloco de localização:
Aqui 1800 está em segundos.
Após alterar a configuração, verifique a sintaxe com:
Em seguida, recarregue o nginx com:
Se você estiver usando AWS e Load Balancer, deverá editar o tempo limite de inatividade. Acho que o padrão é 60 segundos
Eu tenho lutado com o erro de tempo limite nginx 502 e não consegui resolver o problema. No entanto, aconteceu de ser gunicorn causando o erro de tempo limite. Portanto, você também pode precisar verificar as configurações do fastcgi.
Para gunicorn é: