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"
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 ejecutarps aux | grep uwsgi
para verificar si el proceso uwsgi está en ejecución, yls -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 sintaxisunix:/ruta/al/socket
en lugar deunix:///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 ejecutarsudo -u www-data ls -l /run/uwsgi/django/socket
para verificar si el usuario tiene permisos para acceder al archivo de socket, ysudo -u www-data ls -l /var/www/html/mysite
para verificar si el usuario tiene permisos para acceder al directorio del proyecto Django.