Publi sh Django проект с оружейным и NGINX - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь опубликовать sh мой Django проект с NGINX и gunicorn, но я получаю разрешение на отказ от gunicorn.

Мои последние шаги, которые я сделал.

mkdir /home/sama/websites
cd /home/sama/websites
mkdir test_project
cd test_project

создать Virtualenvirement для этого проекта virtualenv --python=/usr/bin/python3.8 venv

Virtualenvirement активировать source venv/bin/activate

Gunicorn & Django установить

pip3 install gunicorn
pip3 install django

создать проект

cd ..
django-admin startproject config test_project

разрешить брандмауэр для порта 8000 sudo ufw allow 8000

запустить первый тест python manage.py runserver 0.0.0.0:8000

открыть IP-адрес моего сервера в веб-браузере myIP: 8000 Я вижу Django basi c page

остановка сервера CTRL + C

testGunicorn gunicorn --bind 0.0.0.0:8000 config.wsgi

testagain на веб-браузере Снова я вижу страницу Djangos

остановка сервера CTRL + C

exit virtualenvirement deactivate

config Gunicorn создает 2 файла в / etc / systemd / system /

gunicorn.socket и gunicorn.service

edit эти файлы sudo nano /etc/systemd/system/gunicorn_test_project.socket

/etc/systemd/system/gunicorn.socket
[Unit]
Description=gunicorn daemon

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target
/etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=sama
Group=www-data
WorkingDirectory=/home/sama/websites/test_project
ExecStart=/home/sama/websites/test_project/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock config.wsgi:application

[Install]
WantedBy=multi-user.target

тестовый сокет

sudo systemctl start gunicorn.socket
sudo systemctl enable gunicorn.socket

системная ссылка создана, проверьте ее file /run/gunicorn.sock Вывод: /run/gunicorn.so ck: socket

curl --unix-socket /run/gunicorn.sock localhost

А теперь я получаю разрешение отклонено

Я уже установил разрешение для папки test_project для пользователя sama и группы www-data, но без каких-либо эффектов. Что не так?

1 Ответ

1 голос
/ 02 апреля 2020

Я не вижу веской причины для использования активации через сокет systemd.

Просто используйте служебный файл и привязайте Gunicorn к HTTP.

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

[Service]
User=sama
Group=www-data
WorkingDirectory=/home/sama/websites/test_project
ExecStart=/home/sama/websites/test_project/venv/bin/gunicorn --access-logfile - --workers 3 --bind 0.0.0.0:8000 config.wsgi:application

[Install]
WantedBy=multi-user.target
...