Я разработал веб-приложение с Django и пытаюсь опубликовать его на виртуальной машине, созданной с помощью Azure. Для этого я использую следующий программный стек:
- Убунту (20.04)
- Джанго (3.0.7)
- Виртуалэнв (20.0.17)
- Гуникорн (20.1.0)
- Нгинкс (1.18.0)
Чтобы развернуть приложение, я следовал этому руководству: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04
Папки моего проекта django организованы следующим образом:
дом/
ââ пользовательadmin/
ââ мой проект/
â â ââ проект/
â â â ââ settings.py
â â â ââ urls.py
â â â ââ wsgi.py
...
â â ââ статический/
â â ââ шаблоны/
â â ââ venv/
â â ââ manage.py
...
Это мое /etc/systemd/система/gunicorn.service
:
[Ед. изм]
Описание=демон пушки
После=network.target
[Оказание услуг]
Пользователь=useradmin
Группа=www-данные
Рабочий каталог=/home/useradmin/myproject
ExecStart=/home/useradmin/myproject/venv/bin/gunicorn --access-logfile --workers 3 --bind unix:/home/useradmin/myproject/myproject.sock proj.wsgi:application
[Установить]
WantedBy=многопользовательская.цель
Это мое /etc/nginx/доступные сайты/мой проект
:
сервер {
слушать 80;
имя_сервера mydomain.com;
location = /favicon.ico { access_log off; log_not_found выключен; }
местоположение /статическое/ {
корень /home/useradmin/мой проект;
}
место расположения / {
включить proxy_params;
proxy_pass http://unix:/home/useradmin/myproject/myproject.sock;
}
}
Когда я перехожу на mydomain.com, я получаю ошибку 502 Bad Gateway. Если я проверю журналы Nginx, запустив «sudo tail -F /var/log/nginx/error.log», я увижу следующую ошибку:
16.03.2022, 08:27:33 [крит] 64480#64480: *3 Ошибка подключения() к unix:/home/useradmin/myproject/myproject.sock (2: Нет такого файла или каталога) при подключении к восходящему потоку, клиент: XX.XX.XX.XX, сервер: mydomain.com, запрос: "GET / HTTP/1.1", восходящий поток: "http://unix:/home/useradmin/myproject/myproject.sock:/", хост : "мойдомен.com"
Чтобы создать файл sock, я выполняю следующие инструкции, но ничего не меняется:
systemctl демон-перезагрузка
systemctl перезапустить gunicorn.service
ОБНОВЛЕНИЕ 1:
Пытаюсь выполнить инструкцию ls -la /home/useradmin/myproject/myproject.sock
я получаю ошибку ls: невозможно получить доступ к '/home/useradmin/myproject/myproject.sock': нет такого файла или каталога