Файл djangoproject.sock подан (2: такого файла или каталога нет) при подключении к апстриму в журнале ошибок nginx - PullRequest
0 голосов
/ 29 апреля 2019

Я уже некоторое время пытаюсь решить проблемы с 500 и 502 неисправными шлюзами на моей производственной площадке.Я заглянул в лог-файлы nginx и обнаружил, что там есть ошибки, которые, похоже, не могут мне помочь.Вот журнал ошибок для nginx:

2019/04/28 20:52:10 [crit] 921#921: *1 connect() to unix:/pathto/django/project/projectname.sock failed (2: No such file or directory) while connecting to upstream, client: x.x.x.x, server: example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/pathto/django/project/projectname.sock:/", host: "example.com"
2019/04/28 20:53:55 [error] 921#921: *17 upstream prematurely closed connection while reading response header from upstream, client: x.x.x.x, server: example.com, request: "POST /games/ HTTP/1.1", upstream: "http://unix:/pathto/django/project/projectname.sock:/x/", host: "example.com", referrer: "http://example.com/x/"
2019/04/28 20:55:57 [error] 921#921: *17 upstream prematurely closed connection while reading response header from upstream, client: x.x.x.x, server: example.com, request: "POST /games/ HTTP/1.1", upstream: "http://unix:/pathto/django/project/projectname.sock:/x/", host: "example.com", referrer: "http://example.com/x/"

Я попытался увеличить время ожидания как в nginx, так и в gunicorn, но безуспешно.Некоторые операции на моем сайте выполняются в течение нескольких минут из-за нескольких запросов API, и я считаю, что это может быть время, однако я не совсем уверен.

Файл nginx, доступный для моих сайтов:

server {
    listen 80;
    server_name example.com;

    location = /favicon.ico {
        return 204;
        access_log off;
        log_not_found off;
    }

    location /static/ {
        root /path/to/static/file;
    }

    location / {
        include proxy_params;
        proxy_pass 
        http://unix:/pathto/django/project/projectname.sock;
    }
}

Мой стартовый файл gunicorn:


#!/bin/bash

NAME="projectname"
DIR=/path/to/project/root
USER=u
GROUP=u
WORKERS=3
BIND=unix:/home/u/run/gunicorn.sock
DJANGO_SETTINGS_MODULE=projectname.settings
DJANGO_WSGI_MODULE=projectname.wsgi
LOG_LEVEL=error

cd $DIR
source ../bin/activate

export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DIR:$PYTHONPATH

exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $WORKERS \
  --user=$USER \
  --group=$GROUP \
  --bind=$BIND \
  --log-level=$LOG_LEVEL \
  --log-file=-

Как уже упоминалось, мой веб-сайт сталкивался с несколькими 500, а также 502 ошибками, когда я начинаю выполнять свои операции API.Эти операции включают сбор (в некоторых случаях) больших объемов данных API и сохранение их в модели моих проектов.Во многих случаях это будет 502 после того, как операция длится около 30 секунд.Много раз, после того, как я повторю это во второй раз, это будет работать должным образом.Я очень застрял в данный момент и был бы признателен за любую помощь или руководство, спасибо!

Кроме того, если это полезно, я использовал это руководство для развертывания этого проекта: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04

...