Nginx возвращает стандартные страницы и игнорирует урлы Django

Я перепробовал все, и не понимаю, в чем проблема.

OS: Ubuntu 20.04.5 LTS

Nginx config:

/etc/nginx/sites-available/default

server {
        listen          80;
        server_name     ***.**.***.***;
        charset         utf-8;
        client_max_body_size 10M;

        location /static {
                alias /var/django-backend/static;
        }

        location /media {
                alias /var/django-backend/media;
        }

        location / {
                proxy_set_header Host $http_host;
                proxy_pass http://unix:/run/gunicorn.sock;
        }
}

P.S. Затем я выполняю команду sudo ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled

Конфигурация службы Gunicorn:

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=root
WorkingDirectory=/var/django-backend
ExecStart=/var/django-backend/venv/bin/gunicorn \
          --access-logfile - \
          -k uvicorn.workers.UvicornWorker \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          backend.asgi:application

[Install]
WantedBy=multi-user.target

/etc/systemd/system/gunicorn.socket

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

Когда я обращаюсь к любой конечной точке, nginx возвращает страницу 404 Nginx 404 page

Видя, что вы все еще можете получить доступ к статическим файлам, вероятно, что-то с настройками Gunicorn. Дважды проверьте, что он запущен и не выдает никаких ошибок

Глядя на документы Gunicorn и мои собственные настройки uWsgi.Nginx, похоже, что это обычно устанавливается как (snippet), так что попробуйте попробовать
. Обратите внимание: что он отделен в собственный upstream раздел, который находится вне server раздела

upstream django {
  # full path to socket, (what I use)
  server unix:///run/gunicorn.sock;
  # `cd /run/gunicorn.sock` would be the location

  # the doc example is:
  # server unix:/tmp/gunicorn.sock fail_timeout=0;
}

server {
  listen          80;
  server_name     ***.**.***.***;
  charset         utf-8;
  client_max_body_size 10M;

  location /static {
    alias /var/django-backend/static;
  }

  location /media {
    alias /var/django-backend/media;
  }

  location / {
    proxy_set_header Host $http_host;
    proxy_pass http://django;

    # The Docs also has all this extra Junk, idk if it's important 

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # we don't want nginx trying to do something clever with
    # redirects, we set the Host: header above already.
    proxy_redirect off;
  }
}
Вернуться на верх