es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando iniciar el sitio con Docker, Gunicorn, Nginx, Docker, uWSGI y Django, pero no se inicia correctamente.

He leído en todas partes sobre cómo poner en funcionamiento el sitio que posiblemente pueda buscar. Sin embargo, no puedo hacer que el sitio se ejecute, obtengo un error 403 o un error 502 (dependiendo de la configuración). Todo esto está instalado dentro de un contenedor de Docker.

Actualmente, lo que estoy intentando hacer es ejecutar uwsgi desde la línea de comandos y gunicorn desde la línea de comandos (para asegurarme de que mis archivos de ini estén configurados correctamente). Ahora no obtengo ningún error desde la línea de comandos, pero el sitio aún no se carga. ¿Alguien puede ayudarme a descubrir qué estoy haciendo mal?

uwsgi --close-on-exec -s unix:///run/uwsgi/django/socket --chdir /var/www/html/mysite/ --pp .. -w blog.wsgi -C666 -p 32 -H /virtualenvpython3/ --uid www-data -gid www-data
/virtualenvpython3/bin/gunicorn --workers 3 --bind unix:/run/gunicorn.sock mysite.wsgi:application

Mi archivo de configuración de nginx se ve así (en /etc/nginx/sites-enabled/blog):

server {
    listen 80;
    server_name my.blog;
    location /assets {
        autoindex on;
        alias /var/www/html/mysite/assets;
    }
    location / {
        autoindex on;
        uwsgi_pass unix:///run/uwsgi/django/socket;
        include /var/www/html/mysite/mysite/uwsgi_params;
    }
}

Por favor, avíseme si necesita alguna otra información. Aquí hay una muestra de mis registros de errores (nginx/error.log):

2022/01/07 07:17:34 [crit] 34 #34: *17 connect () a unix: /// run / uwsgi / django / socket fallido (2: No existe el archivo o el directorio) al conectarse a upstream, cliente: 154.21.22.142, servidor: my.blog, solicitud: "GET / HTTP / 1.1", upstream: "uwsgi: //unix: ///run/uwsgi/django/socket:", host: "my.blog"
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según el registro de errores que proporcionaste, parece que nginx no puede conectarse al socket uwsgi en /run/uwsgi/django/socket. Una cosa que podrías intentar es verificar si el proceso uwsgi está realmente en ejecución y si ha creado el archivo de socket en la ubicación esperada. Puedes intentar ejecutar ps aux | grep uwsgi para verificar si el proceso uwsgi está en ejecución, y ls -l /run/uwsgi/django/socket para verificar si el archivo de socket existe y tiene los permisos correctos.

    Si el proceso uwsgi no está en ejecución, debes revisar el archivo de registro de uwsgi (si existe) en busca de mensajes de error que puedan indicar por qué no pudo iniciarse. También podrías intentar ejecutar el comando uwsgi manualmente sin ninguna opción y ver si muestra algún mensaje de error.

    Si el proceso uwsgi está en ejecución y el archivo de socket existe, podrías intentar modificar la directiva uwsgi_pass en tu configuración de nginx para usar la sintaxis unix:/ruta/al/socket en lugar de unix:///ruta/al/socket. Es posible que las dobles barras estén causando el problema.

    Otra cosa que debes verificar es si el usuario de nginx (generalmente www-data) tiene permisos para leer desde el archivo de socket y acceder a los archivos en el directorio de tu proyecto Django. Puedes intentar ejecutar sudo -u www-data ls -l /run/uwsgi/django/socket para verificar si el usuario tiene permisos para acceder al archivo de socket, y sudo -u www-data ls -l /var/www/html/mysite para verificar si el usuario tiene permisos para acceder al directorio del proyecto Django.

Comments are closed.