2012-01-14 19 views
5
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

Recibo este error en mi servidor Amazon EC2. Esto no ocurre en una página específica en mi sitio web. No creo que sea un error del navegador Chrome porque cuando abro el safari no obtengo el error, obtengo una página en blanco. No estoy seguro de lo que está sucediendo o por qué. Básicamente, estoy buscando las causas de este error del servidor. Cualquier idea será altamente apreciada. Si necesita que proporcione alguna información específica, hágamelo saber.Error 324 respuesta vacía en la aplicación alojada por AWS

Ahora que lo pienso, este error comenzó a suceder cuando actualizamos a mongo php driver 1.2.7. ¿Pensamientos?

+0

Esta es probablemente la violación de segmento Apache. Consulte el registro de errores de apache. – CappY

Respuesta

3

Trouble-shoot con curl desde la línea de comandos. Por ejemplo, http://aws.amazon.com/

$ curl -i http://aws.amazon.com/ 
HTTP/1.1 200 OK 
Date: Tue, 08 May 2012 19:55:14 GMT 
Server: Server 
x-amz-id-1: 0C8YK9MYJMCCSE8R09E5 
x-amz-id-2: zx0HtU9Ub39tobXNBiMRLuE2mvnhQo4Kh1fyj0MdJcg= 
Cache-Control: max-age=0 
Expires: Tue, 08 May 2012 19:55:14 GMT 
Content-Type: text/html; charset=UTF-8 
Set-cookie: aws-session-id-time=2082758401l; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Set-cookie: aws-session-id=000-0000000-0000000; path=/; domain=.amazon.com; expires=Tue, 01-Jan-2036 00:00:01 GMT 
Vary: User-Agent 
Transfer-Encoding: chunked 
... 

El -i incluye cabeceras. Debería ver el código de estado real y luego correlacionarlo con su access_log y error_log. :)

¡Avísame si esto ayuda!

+1

Estoy teniendo el mismo problema. Excepto que CURL me muestra el HTML bien, pero no se está cargando en un navegador.¿Qué podría estar causando algo así en el mundo ?:(Todo estaba bien hasta anoche. – Angad

+0

¿Cookies? ¿Una sesión? No estoy seguro de qué más, ya que su pregunta es bastante vaga. Tal vez use el depurador (en Chrome: opción CMD + + J) y vea lo que dice el navegador? – Till

0

Acabo de querer documentar mi respuesta a este problema de tiempo. Para mí, curl mostró el código HTML correcto, pero mi navegador no.

Inmediatamente deshabilité Session Stickiness de AWS Console para mi LoadBalancer y funciona bien ahora.

@ Till curl consejo es brillante :)

Editar: ¿Cómo gestionar este problema en el futuro cuando se necesita sesión de adherencia? No tengo idea. ¡Pero debería haber respuestas sobre esto!

+1

Gracias, contento de ayudar. ¿La "pegajosidad de sesión" con los ELB se refiere a redirigir al usuario al mismo servidor siempre? De ser así, evito tales cosas y uso un almacén de sesión central (Memcache con MySQL para persistencia) y redirigir al usuario al servidor con la menor carga. – Till

0

Por si acaso alguien más ve esta pregunta y la respuesta de @Till no ayudó. Quería señalar que Elastic Load Balancer de Amazon tiene un tiempo de espera de 60 segundos codificado por hardware. No hay forma de desactivarlo.

https://forums.aws.amazon.com/thread.jspa?threadID=33427&start=0&tstart=50

es necesario agregar un "latido" de su página, para devolver los datos a través de la conexión HTTP. El ELB monitorea la actividad y mantendrá viva su sesión.

Esto puede estar por la borda en algunas aplicaciones, elimina por completo cualquier buffer de php que se inició y vacía los datos al servidor web. Además de esto, GZIP debe estar deshabilitado en el servidor web (apache u otro).

El script devuelve una cantidad bastante grande de datos, unos 64,000 espacios únicos. El navegador ignora los espacios únicos consecutivos, por lo que generalmente es bastante fácil configurar su página para usar estas funciones sin ningún problema de visualización.

Tampoco necesita llamar a esta función con mucha frecuencia. Tienes 60 segundos, por lo general trato de hacer que los míos se ejecuten cada 10 o 15 segundos, pero como duerme por un segundo, no lo llames con demasiada frecuencia o verás una disminución significativa en tu página.

Aquí está la función:

function ELB_HeartBeat(){ 
echo str_repeat(' ',1024*64); 

ob_implicit_flush(true); 
while (@ob_end_flush()); 

@flush(); 
@ob_flush(); 

sleep(1); } 
Cuestiones relacionadas