Como desativar o tempo limite para o nginx?

24

Em uma máquina de desenvolvimento local, Eu 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 ser atrasada por um período infinito, mas depois de 30 segundos eu fico:

504 Gateway Time-out

como resposta.

Como posso desativar o tempo limite e fazer com que meu proxy reverso espere para sempre uma resposta? E eu gosto que a configuração seja global, para que eu não precise configurá-la para cada proxy.

    
por k0pernikus 19.05.2016 / 14:35

3 respostas

30

Pode não ser possível desativá-lo, mas uma solução viável é aumentar o tempo de execução. Em um site tutorial nginx , foi escrito:

If you want to increase time-limit for all-sites on your server, you can edit main nginx.conf file:

vim /etc/nginx/nginx.conf

Add following in http{..} section

http {
     fastcgi_read_timeout 300;
}

e recarregar o nginx 'config:

sudo service nginx reload

Eu usei um valor bastante grande que é improvável de acontecer, ou seja, 999999 . (Configurar o valor para 0 resulta em um tempo limite de gateway imediato.)

    
por 19.05.2016 / 14:50
4

Se você estiver usando o AWS e o Load Balancer, deverá editar o tempo limite de ociosidade. Eu acho que o padrão é 60 segundos

    
por 10.05.2018 / 14:11
2

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. Então você também pode precisar verificar suas configurações de fastcgi.

Para o gunicorn é:

gunicorn wsgi:application --timeout 300
    
por 04.07.2017 / 01:11