mysql django nginx amazon-ec2 uwsgi

mysql - Error: la conexión en sentido ascendente se cerró prematuramente mientras se leía el encabezado de la respuesta en sentido ascendente



django nginx (4)

A veces puede ser un problema de autoridad. Compruebe la autoridad del directorio del proyecto.

Actualmente, SIEMPRE obtengo un 502 en una consulta que realizan mis usuarios ... que generalmente devuelve 872 filas y tarda 2.07 en ejecutarse en MySQL. Sin embargo, está devolviendo MUCHA información. (Cada fila contiene muchas cosas). ¿Algunas ideas?

Ejecutando la pila Django (tastypie Rest API), Nginx y uWSGI.

Configuración del servidor con NGINX

# the upstream component nginx needs to connect to upstream django { server unix:///srv/www/poka/app/poka/nginx/poka.sock; # for a file socket } # configuration of the server server { # the port your site will be served on listen 443; # the domain name it will serve for server_name xxxx; # substitute your machine''s IP address or FQDN charset utf-8; # max upload size client_max_body_size 750M; # adjust to taste # Finally, send all non-media requests to the Django server. location / { uwsgi_pass django; include /srv/www/poka/app/poka/nginx/uwsgi_params; # the uwsgi_params file you installed } }

Config UWSGI

# process-related settings # master master = true # maximum number of worker processes processes = 2 # the socket (use the full path to be safe socket = /srv/www/poka/app/poka/nginx/poka.sock # ... with appropriate permissions - may be needed chmod-socket = 666 # clear environment on exit vacuum = true pidfile = /tmp/project-master.pid # create a pidfile harakiri = 120 # respawn processes taking more than 20 seconds max-requests = 5000 # respawn processes after serving 5000 requests daemonize = /var/log/uwsgi/poka.log # background the process & log log-maxsize = 10000000 #http://uwsgi-docs.readthedocs.org/en/latest/Options.html#post-buffering post-buffering=1 logto = /var/log/uwsgi/poka.log # background the process & log


En su bloque de ubicación de @django puede intentar agregar algunas propiedades de tiempo de espera de lectura y conexión de proxy. p.ej

location @django { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; # proxy header definitions ... proxy_pass http://django; }


Es poco probable que esto sea un problema de configuración de nginx.

Es casi seguro que el backend se está estrellando (o simplemente finaliza la conexión) en lugar de dar una respuesta mal formada. es decir, el mensaje de error le indica cuál es el problema, pero está buscando en el lugar equivocado para resolverlo.

No das suficiente información para permitirte averiguar cuál es el problema exacto, pero si tuviera que adivinar:

que generalmente devuelve 872 filas y tarda 2.07 en ejecutarse en MySQL. Sin embargo, está devolviendo MUCHA información.

Se está agotando el tiempo en algún lugar o se está quedando sin memoria.


Tuve el mismo problema, lo que lo solucionó para mí es agregar mi dominio en la configuración.py, por ejemplo:

ALLOWED_HOSTS = [''.mydomain.com'', ''127.0.0.1'', ''localhost'']

Por el mismo problema, quiero decir que ni siquiera podía cargar la página, nginx devolvería un 502 sin servir ninguna página en la que pudiera provocar un bloqueo de la aplicación.

Y el registro de nginx contenía:

Error: upstream prematurely closed connection while reading response header from upstream