Apache proxfy_fcgi: error al enviar la solicitud a

6 minutos de lectura

avatar de usuario de require_once
requerir una vez

Tengo alojamiento en la nube en Google, apesta para ser honesto, pero estoy tratando de seguir adelante, instalé la pila LAMP en una máquina virtual y puse mi sitio web en htdocs. Cuando trato de acceder a mi sitio me da request timeout pero a veces funciona durante 5 minutos más o menos.

Cuando veo los registros de error de apache, me da esto

075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.185819 2015] [proxy_fcgi:error] [pid 4995:tid 140183521683200] (70007)The timeout specified has expired: [client 162.158.255.169:34198] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.487458 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 4995 exit signal Segmentation fault (11)
[Tue Oct 27 18:12:55.787973 2015] [proxy_fcgi:error] [pid 5063:tid 140183530075904] (70007)The timeout specified has expired: [client 199.27.133.137:13151] AH01075: Error dispatching request to : (polling), referer: http://whichtube.com/watch/g9-4dCeFQng/allama-nasir-abbas-jawab-ali-as-nae-talwar-kayou-na-uthai.html
[Tue Oct 27 18:12:57.542883 2015] [proxy_fcgi:error] [pid 5329:tid 140183521683200] (70007)The timeout specified has expired: [client 173.245.56.198:51348] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:57.976752 2015] [proxy_fcgi:error] [pid 5063:tid 140183479719680] (70007)The timeout specified has expired: [client 173.245.56.198:63779] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:58.993666 2015] [proxy_fcgi:error] [pid 5194:tid 140183496505088] (70007)The timeout specified has expired: [client 162.158.255.141:16226] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:59.196701 2015] [proxy_fcgi:error] [pid 5329:tid 140183513290496] (70007)The timeout specified has expired: [client 173.245.56.198:32819] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:01.462039 2015] [proxy_fcgi:error] [pid 5329:tid 140183504897792] (70007)The timeout specified has expired: [client 199.27.128.166:48057] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:07.518999 2015] [proxy_fcgi:error] [pid 5063:tid 140183471326976] (70007)The timeout specified has expired: [client 173.245.56.198:13694] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:16.804990 2015] [proxy_fcgi:error] [pid 5261:tid 140183513290496] (70007)The timeout specified has expired: [client 199.27.128.134:28694] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:33.055860 2015] [proxy_fcgi:error] [pid 5328:tid 140183236331264] (70007)The timeout specified has expired: [client 39.41.139.220:52154] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:57.391361 2015] [proxy_fcgi:error] [pid 5063:tid 140183521683200] (70007)The timeout specified has expired: [client 39.41.139.220:52029] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:13:57.552542 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 5063 exit signal Segmentation fault (11)

Mi sitio web está en PHP, no he cambiado nada más que el permiso de directorio, ¿hay algo que me falta?

Avatar de usuario de Roberto Ibarra Rabadán
Roberto Ibarra Rabadán.

Estaba teniendo el mismo problema, resulta que Apache tiene un módulo que maneja los tiempos de espera llamados mod_reqtimeout

El valor predeterminado (no lo verá en el http.conf predeterminado) es:

RequestReadTimeout handshake=0 header=20-40,MinRate=500 body=20,MinRate=500

En mi caso, estaba cargando un archivo a través de un envío de formulario HTML simple, por lo que el archivo es técnicamente parte del encabezado y la configuración predeterminada dice que el encabezado se agotará entre 20 y 40 segundos. Lo de 20-40 es bastante bueno porque se agotará el tiempo de espera a los 20 segundos, pero si se envían 500 bytes en un segundo, agregará un segundo adicional de tiempo de espera hasta llegar a los 40 segundos y luego se agotará sin importar qué.

Subo archivos más grandes en mi sitio web, así que agregué esta línea a mi archivo httpd.conf:

RequestReadTimeout handshake=0 header=20-600,MinRate=500 body=20,MinRate=500

Entonces, siempre que mi usuario envíe datos a un mínimo de 500 bytes / s, la solicitud no se agotará hasta un máximo. de 600 segundos se alcanza (mejor leer la documentación, no me citan en la tasa de rendimiento)

En realidad, es un módulo Apache bastante bueno, pero no muy conocido, ya que la gente recomienda cambiar otras configuraciones de tiempo de espera de Apache en otros problemas similares “El tiempo de espera especificado ha caducado:” relacionados con PHP-FPM, pero este problema ocurre con cualquier publicación que tarde más de 40 segundos para ser enviado por defecto en Apache.

  • El mensaje de error AH01075 de proxy_fcgi dice que la solicitud que se envía a php-fpm se ha agotado, presumiblemente porque ProxyTimeout se ha excedido. ¿Estás diciendo que ves este mismo error cuando RequestReadTimeout se desencadena? Pregunto porque, en cambio, esperaría ver algo como “Tiempo de espera de lectura del cuerpo de la solicitud” si RequestReadTimeout estaban involucrados.

    – oso molecular

    26 sep 2019 a las 18:49

  • @molecularbear el error exacto que obtuve fue: [Fri May 10 13:19:41.073170 2019] [proxy_fcgi:error] [pid 26964:tid 140276668856064] (70007)The timeout specified has expired: [client 201.17.156.113:2022] AH01075: Error dispatching request to : (reading input brigade), referer: https://siste.. Este tiempo de espera se debió a que el archivo que el usuario cargó en mi secuencia de comandos php (que en realidad se envía en los encabezados POST), tardó más que el valor predeterminado, por lo que se agotó el tiempo de espera.

    –Roberto Ibarra Rabadán

    27 sep 2019 a las 19:16

  • cuidado con eso handshake variable no están disponibles hasta la versión 2.4.39 de Apache

    – Christophorus Reyhan

    28 de abril a las 3:41

Avatar de usuario de Tim
Tim

Parece que su código PHP está tardando más que el tiempo de espera configurado en completarse. Cuando apache carga una página PHP usando fcgi, envía la solicitud al servicio PHP-FPM para que sea procesada. Si PHP-FPM tarda demasiado en responder, verá este tipo de tiempo de espera. Las posibles causas son; su código PHP podría estar atascado en un bucle o esperando una respuesta de una base de datos que está tardando mucho tiempo.

Para solucionar el problema, usaría la versión CLI de php para ver si el script se completa en una cantidad de tiempo razonable ($ time php /path/to/file.php). Puede haber información adicional en el registro de PHP-FPM (predeterminado: /var/log/php-fpm.log).

Para mí, un reinicio de php-fpm hizo el trabajo. Después de mirar en el registro como aconsejó @varlogtim. El registro mostró que no hubo actividad durante las últimas 12 horas…

También tuve este problema. Es posible que desee buscar una parte de código duro y una conexión a otro servidor no disponible en su código. (por ejemplo, una IP local a la que no se puede acceder en línea).

Para el mío, revisé php-fpm.log en mi servidor y descubrí que mi aplicación está tratando de conectarse a un servidor antiguo (IP incorrecta) y se enfrenta a un tiempo de espera agotado.

Me enfrenté a este problema exacto. Resolví el problema aumentando el tiempo de espera. Mi sistema operativo es AlmaLinux 8.5. Agregue las siguientes dos líneas en su httpd.conf o tu virtualhost archivo conf.

Timeout 600

ProxyTimeout 600

Avatar de usuario de Mojtaba Rezaeian
mojtaba rezaeian

Tuve el mismo problema y en mi caso funcionó esta solución:

  • aumentar request_terminate_timeout valor ubicado en mi
    /etc/php-fpm.d/www.conf expediente.

Nota: esta opción anula php max_execution_time ini y establecer un valor bajo para ella podría causarle muchos problemas porque anulará otras opciones y cancelará la solicitud por la fuerza si el tiempo de espera expira. (Si pregunta qué valor establecer, debería ser el tiempo máximo de procesamiento del script según sus necesidades, pero normalmente 600 s (10 minutos) o 10 minutos (10 minutos) es más que suficiente).

avatar de usuario de element303
elemento303

Tuve el mismo problema en Centos 7: problema con SELINUX. Puede deshabilitar temporalmente SELINUX para comprobar:
sudo setenforce 0

¿Ha sido útil esta solución?