2011-07-12 15 views
13

Estoy ejecutando Ubuntu 10.04, Django 1.3, Nginx 0.8.54 y uWSGI 0.9.7.Django + Nginx + uWSGI = 504 Tiempo de espera de puerta de enlace

Tanto Nginx como uWSGI se cargan sin error. Sin embargo, cuando accede a mi sitio, permanece mucho tiempo y luego carga un error de "504 Gateway Time-out".

Aquí es mi Nginx archivo de host virtual conf:

server { 
listen   80; 
server_name  www.mysite.com mysite.com; 
error_log  /home/mysite/log/error.log; 
access_log  /home/mysite/log/access.log; 

location/{ 
    auth_basic "Restricted"; 
    auth_basic_user_file /home/mysite/public/passwd; 
    include uwsgi_params; 
    uwsgi_pass unix:///home/mysite/public/myapp.sock; 
} 

location /media { 
    alias /home/mysite/public/myapp/media; 
} 


error_page 401 /coming_soon.html; 

location /coming_soon.html { 
    root /home/mysite/public/error_pages/401; 
} 

location /401/images { 
    alias /home/mysite/public/error_pages/401/images; 
} 

location /401/style { 
    alias /home/mysite/public/error_pages/401/style; 
} 

}

Mi registro sitio muestra esto:

SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request/!!! 

Mi programa de registro de error siguiente:

upstream timed out (110: Connection timed out) while reading response header from upstream 

Tengo dos otros sitios en este servidor con la misma configuración y se cargan PERFECTAMENTE.

¿Alguien más ha encontrado este problema? Hay varios hilos aquí que son similares a mi problema y he intentado varias de esas soluciones, pero parece que nada funciona.

Gracias de antemano por su ayuda!

+0

Agregar config para uWSGI. Creo que hay un problema con la ruta aquí 'uwsgi_pass unix: ///home/mysite/public/myapp.sock;' – nk9

Respuesta

1

unix: ///home/mysite/public/myapp.sock; sintaxis no correcta, use esto:

unix: /home/mysite/public/myapp.sock;

19

Ese error se produce cuando las solicitudes superan la configuración de NGINX uwsgi_read_timeout. Después de que NGINX exceda este límite, cierra el socket y luego uWSGI intenta escribir en el socket cerrado, produciendo el error que ve en uWSIG.

Asegúrate de que tus tiempos de espera de NGINX sean al menos tan altos como los tiempos de espera uWSGI (HARAKIRI_TIMEOUT).

+0

Para aclarar, debe agregar 'uwsgi_read_timeout 600;' dentro de la sección 'ubicación' correspondiente. – serg

+0

Hombre, ... me estaba golpeando la cabeza durante 3 horas, tratando de establecer cualquier parámetro en nginx. ¡Gracias! –

Cuestiones relacionadas