J'utilise Django, FastCGI et Nginx. Je crée une sorte d'api où quelqu'un peut envoyer des données via XML que je traiterai puis retournerai des codes d'état pour chaque nœud qui a été envoyé.
Le problème est que Nginx lancera un délai d'expiration de la passerelle 504 si je prends trop de temps pour traiter le XML - je pense que plus de 60 secondes.
Je voudrais donc configurer Nginx de sorte que si des demandes correspondant à l'emplacement / api ne dépassent pas 120 secondes. Quel cadre accomplira cela.
Ce que j'ai jusqu'à présent, c'est:
# Handles all api calls
location ^~ /api/ {
proxy_read_timeout 120;
proxy_connect_timeout 120;
fastcgi_pass 127.0.0.1:8080;
}
Edit: ce que j'ai ne fonctionne pas :)
configuration
nginx
fastcgi
sheats
la source
la source
Réponses:
Les délais d'attente de proxy sont bien, pour les proxies, pas pour FastCGI ...
Les directives qui affectent les délais d'attente FastCGI sont
client_header_timeout
,client_body_timeout
etsend_timeout
.Edit : Compte tenu de ce qui se trouve sur le wiki nginx, la directive send_timeout est responsable de la définition du délai d'expiration général de la réponse (ce qui était un peu trompeur). Pour FastCGI, il y a
fastcgi_read_timeout
ce qui affecte le délai de réponse du processus fastcgi .HTH.
la source
Pour ceux qui utilisent nginx avec licorne et rails, le délai d'attente est probablement dans votre
unicorn.rb
fichiermettre un grand timeout dans unicorn.rb
si vous rencontrez toujours des problèmes, essayez d'avoir fail_timeout = 0 dans votre amont dans nginx et voyez si cela résout votre problème. C'est à des fins de débogage et peut être dangereux dans un environnement de production.
la source
Dans la
http
section nginx (/etc/nginx/nginx.conf) ajoutez ou modifiez:Dans la
server
section nginx (/etc/nginx/sites-available/your-config-file.com) ajoutez ces lignes:Dans
php
le dossier 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf), modifiez:J'espère vous aider.
la source
Si vous utilisez la licorne.
Regardez
top
sur votre serveur. Unicorn utilise probablement 100% du CPU en ce moment. Il existe plusieurs raisons à ce problème.Vous devriez vérifier vos requêtes HTTP, certaines peuvent être très difficiles.
Vérifiez la version de la licorne. Il se peut que vous l'ayez mis à jour récemment et que quelque chose soit cassé.
la source
Dans le serveur proxy défini comme ça
Dans le serveur php défini comme ça
la source