Estoy ejecutando Django, FastCGI y Nginx. Estoy creando una especie de API para que alguien pueda enviar algunos datos a través de XML que procesaré y luego devolver algunos códigos de estado para cada nodo que se envió.
El problema es que Nginx arrojará un tiempo de espera de la puerta de enlace 504 si me tomo demasiado tiempo para procesar el XML, creo que más de 60 segundos.
Por lo tanto, me gustaría configurar Nginx para que, si alguna solicitud que coincida con la ubicación / api, no expire durante 120 segundos. Qué configuración logrará eso.
Lo que tengo hasta ahora es:
# Handles all api calls
location ^~ /api/ {
proxy_read_timeout 120;
proxy_connect_timeout 120;
fastcgi_pass 127.0.0.1:8080;
}
Editar: lo que tengo no funciona :)
configuration
nginx
fastcgi
fundas
fuente
fuente
Respuestas:
Los tiempos de espera de proxy son buenos, para servidores proxy, no para FastCGI ...
Las directivas que afectan los tiempos de espera de FastCGI son
client_header_timeout
,client_body_timeout
ysend_timeout
.Editar : Teniendo en cuenta lo que se encuentra en nginx wiki, la directiva send_timeout es responsable de establecer el tiempo de espera general de respuesta (que fue un poco engañoso). Para FastCGI,
fastcgi_read_timeout
esto está afectando el tiempo de espera de respuesta del proceso fastcgi .HTH
fuente
Para aquellos que usan nginx con unicornio y rieles, lo más probable es que el tiempo de espera esté en su
unicorn.rb
archivoponer un gran tiempo de espera en unicorn.rb
si aún enfrenta problemas, intente tener fail_timeout = 0 en su upstream en nginx y vea si esto soluciona su problema. Esto es para fines de depuración y puede ser peligroso en un entorno de producción.
fuente
En la
http
sección nginx (/etc/nginx/nginx.conf) agregue o modifique:En la
server
sección nginx (/etc/nginx/sites-available/your-config-file.com) agregue estas líneas:En el
php
archivo en el caso 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf) modifique:Espero ayudarte
fuente
Si usas unicornio.
Mira en
top
tu servidor. Es probable que Unicorn esté usando el 100% de la CPU en este momento. Hay varias razones de este problema.Debe verificar sus solicitudes HTTP, algunas de ellas pueden ser muy difíciles.
Verifique la versión del unicornio. Puede ser que lo hayas actualizado recientemente y se haya roto algo.
fuente
En el servidor proxy configurado así
En el servidor php configurado así
fuente