Ubuntu 16.04에서 Django 및 nginx와 함께 작동하도록 uWSGI 연결


14

나는 따라하려고 이 튜토리얼 설정에를 uWSGIDjangonginxUbuntu16.04.

이 명령을 실행하려고하는 마지막 단계 (오 아이러니 ...)까지 모든 것이 잘 작동합니다.

sudo service uwsgi start

다음 오류와 함께 실패하면

uwsgi.service를 시작하지 못했습니다 : uwsgi.service 장치를 찾을 수 없습니다.

다른 사람들도 비슷한 오류가 발생합니다.

uwsgi.service를 시작하지 못했습니다 : uwsgi.service 장치를로드하지 못했습니다 : 해당 파일이나 디렉토리가 없습니다.

이 문제는 Ubuntu 버전과 관련된 것으로 보입니다. 이 튜토리얼은 우분투 14.04를 대상으로하지만,이 있기 때문에 새 버전 작업을하지 않습니다 보인다 버전 15에서 우분투가로 전환 upstart받는 초기화 데몬 systemd의 init 데몬 .

systemdnginx 및 Django에서 작동하도록 uWSGI를 시작 하는 데 어떻게 사용할 수 있습니까?

답변:


27

첫번째 필요한 수정은이다 /etc/uwsgi/sites/firstsite.ini파일. 필요한 변경 사항은 권한을에서 (으) 664로 바꾸는 것 666입니다. 스크립트는 다음과 같습니다.

[uwsgi]
project = firstsite
base = /home/user

chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application

master = true
processes = 5

socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true

두 번째로 우리가 사용하고있는대로 systemd가 아니라 upstart, 다음과 같은 파일이있다 필요하지 및 제거 할 수 있습니다 :/etc/init/uwsgi.conf

셋째 , 다음 systemd스크립트를 작성합니다 /etc/systemd/system/uwsgi.service.

[Unit]
Description=uWSGI Emperor service
After=syslog.target

[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

이 새로운 uWSGI 서비스를 사용하여 systemd init 시스템의 상태를 새로 고칩니다.

sudo systemctl daemon-reload

스크립트를 시작하려면 다음을 실행해야합니다.

sudo systemctl start uwsgi

uWSGI재부팅시 시작 하려면 다음이 필요합니다.

sudo systemctl enable uwsgi

다음을 사용하여 상태를 확인할 수 있습니다.

systemctl status uwsgi

자세한 내용은 여기를 참조 하십시오 .


1
systemd에서 파이썬 virtualenv를 어떻게 사용합니까? 내가 실행할 때 나는 systemctl status uwsgi얻는다 ImportError: No module named site.
tlng05

2
서사시 ..... 나는 이것으로 오랫동안 고투하고 있었다 .... 당신이 작성한 간단하고 쉬운 단계별 솔루션에 감사드립니다. +1
Rakib

1
나는 그것을 몇 번 사용했는데, 매우 도움이되는 답변
jozi

0

이 오류를 해결하려면 sudo systemctl daemon-reload새로 작성된 uwsgi.service 파일을로드하십시오.

재부팅 할 때마다 서비스를 시작하려면 다음을 수행하십시오 sudo systemctl enable uwsgi.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.