Estou executando o Django, FastCGI e Nginx. Estou criando um tipo de API que permite que alguém envie alguns dados via XML que processarei e retornarei alguns códigos de status para cada nó que foi enviado.
O problema é que o Nginx lançará um tempo limite do gateway 504 se eu demorar muito para processar o XML - acho que mais de 60 segundos.
Então, eu gostaria de configurar o Nginx para que, se alguma solicitação correspondente à localização / API não exceder o tempo limite por 120 segundos. Que configuração conseguirá isso.
O que tenho até agora é:
# Handles all api calls
location ^~ /api/ {
proxy_read_timeout 120;
proxy_connect_timeout 120;
fastcgi_pass 127.0.0.1:8080;
}
Edit: O que eu tenho não está funcionando :)
configuration
nginx
fastcgi
sheats
fonte
fonte
Respostas:
Os tempos limite do proxy são bons, para proxies, não para FastCGI ...
As diretivas que afetam os tempos limite do FastCGI são
client_header_timeout
,client_body_timeout
esend_timeout
.Edit : Considerando o que é encontrado no wiki do nginx, a diretiva send_timeout é responsável por definir o tempo limite geral da resposta (o que foi um pouco enganador). Para o FastCGI,
fastcgi_read_timeout
está afetando o tempo limite da resposta do processo fastcgi .HTH.
fonte
Para aqueles que usam nginx com unicórnio e trilhos, provavelmente o tempo limite está no seu
unicorn.rb
arquivocoloque um grande tempo limite no unicorn.rb
se você ainda estiver enfrentando problemas, tente ter fail_timeout = 0 no seu upstream no nginx e veja se isso resolve o seu problema. Isso é para fins de depuração e pode ser perigoso em um ambiente de produção.
fonte
Na
http
seção nginx (/etc/nginx/nginx.conf), adicione ou modifique:Na
server
seção nginx (/etc/nginx/sites-available/your-config-file.com), adicione estas linhas:No
php
arquivo no caso 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf), modifique:Espero te ajudar.
fonte
Se você usa unicórnio.
Veja no
top
seu servidor. O Unicorn provavelmente está usando 100% da CPU no momento. Existem várias razões para esse problema.Você deve verificar suas solicitações HTTP, algumas delas podem ser muito difíceis.
Verifique a versão do unicórnio. Talvez você o tenha atualizado recentemente, e algo foi quebrado.
fonte
No servidor proxy definido assim
No servidor php definido assim
fonte