尝试配置ubuntu + nginx + uwsgi + django
upstart script /etc/init/uwsgi.conf
description "uWSGI application server in Emperor mode"
start on runlevel [2345]
stop on runlevel [!2345]
setuid voxa
setgid www-data
exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
uwsgi配置
[uwsgi]
project = project
base = /home/user
chdir = %(base)/%(project)
home = home/user/Env/project_env
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 664
vacuum = true
socket = %(base)/%(project)/%(project).sock
chmod-socket = 664
vacuum = true
但是在运行命令 sudo service uwsgi start 之后我收到错误
开始:作业无法启动
我应该检查什么来处理它?</ p>
UPD: 启用virtualenv的应用程序使用uwsgi命令成功运行
uwsgi --http:8000 --module project.wsgi
答案 0 :(得分:3)
uWSGI无权在指定目录中创建套接字文件。要解决这个问题,您可以在创建套接字后以root身份运行emperor并在vassal中删除权限。只需添加到您的附庸配置:
username = voxa
gropuname = www-data
从您的upstart配置文件中删除setuid
和setgid
。
如果您担心某人会滥用该内容并使用其他用户/群组,则可以使用emperor tyrant mode,将--emperor-tyrant
添加到upstart配置中的uwsgi起始行。这将禁止将用户名和组名更改为vassal配置文件的所有者。