HTTP 499 Client Closed Request: Solucionado

HTTP 499 Client Closed Request: Solucionado

Te ayudamos a entender el error HTTP 499 Client Closed Request: cuáles son las causas y cómo solucionarlo.

Tabla de contenidos

¿Qué es el error 499 Client Closed Request?

El 499 HTTP es un código de estado no estándar introducido por Nginx, y se produce cuando un cliente, por ejemplo un navegador, cierra la conexión mientras Nginx todavía está procesando la solicitud.

Cómo corregir el error 499 Client Closed Request

Hay varias razones por las que el cliente no procesa la petición o «request» y termina mostrándose el código de error 499. En los siguientes apartados te ayudaremos a identificar las diferentes causas y cómo solucionarlo en cada caso.

Error 499 cuando la web está detrás de un proxy

Puedes encontrar errores 499 cuando tienes un servicio de balanceo de carga «Load Balancer» entre tus usuarios y tu Nginx. Una situación similar ocurre cuando tu web servida con Nginx esta trabajando con un CDN o está detrás de un cortafuegos WAF (Web Application Firewall).

El error 499, en este caso, se da cuando el servidor frontal que atiende la solicitud del navegador es un servidor Nginx en modo de proxy inverso «reverse proxy» y envía la solicitud a tu web server, pero el proceso de la página es lento y se supera el tiempo de espera del servidor frontal.

el balanceador de carga proxy da el error 499 esperando el servidor de WordPress
El Error 499 aparece en este esquema cuando el «Load Balancer» Nginx se agota esperando la respuesta de tu servidor de WordPress

Para corregir este error, puedes:

  • Aumentar la capacidad de procesamiento de tu servidor. Al aumentar el «poder de procesamiento», reducirás el tiempo de espera de los proxies Nginx que están por delante de tu server.
  • Si no puedes aumentar la potencia de tu servidor, aumenta los tiempos de espera «timeouts» de tus proxies (Load Balancer, CDN, Firewall, …).

En Wetopi puedes aumentar el tamaño de tu servidor con un solo clic.

★ Configuración cero: los archivos de configuración para todos los servicios del servidor se ajustan de forma transparente a la potencia.

La secuencia correcta para configurar los tiempos de espera

Si hay proxies en tu configuración, como un «Load Balancer», un Cortafuegos, un CDN, etc., debes configurar los tiempos de espera para que el «timeut» suceda primero en tu servidor y luego en los otros proxies por orden, según nos acercamos al usuario. De esta manera tendremos un mensaje claro del error que ocurre y en que capa de servicio ocurre.

Ejemplo:

Usuario → CDN → Nginx Load Balancer → Aplicación Nginx → Php_fpm

Se recomienda establecer los tiempos de espera de esta manera:

  • n segundos para el tiempo de espera de Php_fpm.
    Configura el php.ini max_execution_time y
    el request_terminate_timeout en el archivo de configuración de php_fpm.
  • n+1 segundos para el tiempo de espera de la aplicación Nginx.
    Configura fastcgi_read_timeout en la configuración de nginx.
  • n+2 segundos para el tiempo de espera de Nginx Load Balancer
    En el location, donde estás haciendo el proxy_pass, establece los tiempos de espera de:
    proxy_connect_timeout
    proxy_send_timeout
    proxy_read_timeout
  • n+3 segundos de tiempo de espera para tu CDN.
    NOTA: Si no puedes configurar los tiempos de espera de tu CDN, investiga cuál es su tiempo de espera y ajusta los demás tiempos de acuerdo con él.

Proporciona una cadena correcta de tiempos de espera.
El establecer una cadena incremental de tiempos de espera te permite encontrar el problema y en que capa de servicio ocurre.

499 cuando el servidor cerró la conexión

Este podría ser tu caso, si:

  1. tu web o aplicación se está ejecutando en un servidor Nginx y,
  2. la solicitud se pasa por un procesador de aplicaciones «CGI», por ejemplo, php_fpm, o
  3. la solicitud se pasa a una API externa.

Este código de error 499 se produce cuando tu servidor es demasiado lento ejecutando código.

por ejemplo, el proceso de tu página de WordPress tarda demasiado o se congela

NOTA: Puedes identificar el caso si en la configuración de Nginx usas la directiva fastcgi_pass.

Para corregir este error, puedes:

  • Aumentar la capacidad de procesamiento de tu servidor. Al aumentar el «poder de procesamiento», reducirás el tiempo de espera de tu Nginx.
  • Si no puedes aumentar la potencia de tu servidor, aumenta el tiempos de espera de Nginx con la directiva: fastcgi_read_timeout.

★ En Wetopi, tienes configuración cero: los archivos de configuración para todos los servicios del servidor se ajustan de forma transparente a la potencia.

Cómo corregir el error 499 cuando muere tu aplicación

Si tu aplicación muere sin una respuesta, la solución podría estar en el código de tu API, CGI o gestor de contenidos.

NOTA: Este es el caso menos común. PHP y otros procesadores siempre retornan un mensaje notificando el problema. Si la aplicación arrojaba un error, Nginx le pasaría un código de error 5XX, no un 499.

Si tu aplicación se congela, tienes 2 opciones:

  • Primero, configura tu Nginx para que espere más. Aumenta los tiempos de espera de tu Nginx modificando fastcgi_read_timeout.
  • Si esperar más no resuelve el problema, aumenta la capacidad de procesamiento de tu servidor.
  • Si el error 499 se produce en alguna página o petición en concreto, podría tratarse de un bloqueo o «code freeze» en tu aplicación o gestor de contenidos. Si usas WordPress, revisa la compatibilidad de los plugins. Si se realizan consultas a Base de Datos, revisa el buen estado de tablas e índices..

499 cuando tu servidor está bajo un ataque DoS o DDoS

Puede darse el caso en el que alguien ataque e intencionalmente consuma los recursos del servidor. Esto hace que el servidor no pueda procesar las solicitudes y no se sirvan las peticiones a tiempo.

Para verificar si este es su caso: mira en tu herramienta de análisis de «logs» y busca picos en el tráfico con solicitudes que den el código de estado 499:

picos de tráfico con 499 errores en el registro de tráfico
Listado de peticiones utilizando el panel de Kibana contra Elastic Search

Cómo corregir el error 499 cuando sufrimos un ataque DoS/DDoS:

En este caso, la mejor solución es una combinación de medidas de seguridad:

En Wetopi, como especialistas en WordPress, sabemos lo importante que es disponer de fuertes medidas de seguridad.

Aplicamos tres técnicas para filtrar el tráfico:

Aprendizaje heurístico compartido,
Listas negras de fuentes externas y
Mitigación de ataques DDoS.

Resumidamente, somos unos techies apasionados por WordPress que hemos creado Wetopi, un Alojamiento Gestionado WordPress, para minimizar la fricción a la que todo profesional se enfrenta al trabajar y alojar proyectos WordPress.

¿No tienes una cuenta en wetopi?

Incluye servidores desarrollo Gratis.
Sin tarjeta de crédito.

Todos los Códigos de Estado HTTP

200 OK

201 Created

202 Accepted

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

207 Multi-Status

208 Already Reported

226 IM Used

300 Multiple Choices

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

307 Temporary Redirect

308 Permanent Redirect

400 Bad Request

401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Payload Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

417 Expectation Failed

418 I’m A Teapot

421 Misdirected Request

422 Unprocessable Entity

423 Locked

424 Failed Dependency

426 Upgrade Required

428 Precondition Required

429 Too Many Requests

431 Request Header Fields Too Large

444 Connection Closed Without Response

451 Unavailable For Legal Reasons

499 Client Closed Request

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

506 Variant Also Negotiates

507 Insufficient Storage

508 Loop Detected

510 Not Extended

511 Network Authentication Required

599 Network Connect Timeout Error

Compara wetopi con tu alojamiento actual

Date de alta, pide una migración y compara.

Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.

Sin letra pequeña.
Sin compromisos.
Sin tarjeta de crédito.