fastcgi_ignore_client_abort configuration nginx fastcgi

configuration - fastcgi_ignore_client_abort nginx



¿Cómo puedo evitar un tiempo de espera de puerta de enlace con FastCGI en Nginx? (4)

Los tiempos de espera de proxy están bien, para los proxies, no para FastCGI ...

Las directivas que afectan a los tiempos de espera FastCGI son client_header_timeout , client_body_timeout y send_timeout .

Edición : Teniendo en cuenta lo que se encuentra en la wiki de nginx, la directiva send_timeout es responsable de establecer el tiempo de espera general de la respuesta (que fue un poco engañoso). Para FastCGI hay fastcgi_read_timeout que está afectando el tiempo de espera de respuesta del proceso fastcgi .

HTH.

Estoy ejecutando Django, FastCGI y Nginx. Estoy creando una api de tipo en la que alguien puede enviar algunos datos a través de XML, los cuales procesaré y luego devolveré algunos códigos de estado para cada nodo que se envió.

El problema es que Nginx lanzará un Tiempo de espera de puerta de enlace 504 si me demoro demasiado en procesar el XML; creo que durará más de 60 segundos.

Así que me gustaría configurar Nginx para que si alguna de las solicitudes que coinciden con la ubicación / api no se agote 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; }

Edit: Lo que tengo no funciona :)


Para aquellos que usan nginx con unicornio y rieles, lo más probable es que el tiempo de espera se encuentre en su archivo unicorn.rb

poner un gran tiempo de espera en unicorn.rb

timeout 500

si aún estás enfrentando problemas, intenta tener fail_timeout = 0 en tu upstream en nginx y mira si esto soluciona tu problema. Esto es para propósitos de depuración y puede ser peligroso en un entorno de producción.

upstream foo_server { server 127.0.0.1:3000 fail_timeout=0; }


Si usas unicornio.

Busque en la top de su servidor. Unicornio probablemente está usando el 100% de la CPU en este momento. Hay varias razones de este problema.

  • Debes revisar tus solicitudes HTTP, algunas de ellas pueden ser muy difíciles.

  • Revisa la versión de unicornio. Puede que lo hayas actualizado recientemente, y algo se haya roto.


En la sección http nginx (/etc/nginx/nginx.conf) agregue o modifique:

keepalive_timeout 300s

En la sección del server nginx (/etc/nginx/sites-available/your-config-file.com) agregue estas líneas:

client_max_body_size 50M; fastcgi_buffers 8 1600k; fastcgi_buffer_size 3200k; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s;

En el archivo php en el caso 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf) modifique:

request_terminate_timeout = 300

Espero te ayude