uwsgi:从启动脚本运行时连接被拒绝

时间:2012-11-06 13:07:20

标签: django ubuntu permissions wsgi uwsgi

我想用nginx和uwsgi在amazon ec2(ubuntu)上运行一个django站点。我按照here所述的基本设置进行了操作。

当我从命令行启动uwsgi(作为ubuntu用户)时,一切正常,网站正常提供:

/home/ubuntu/uwsgi-1.3/uwsgi --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env

但是,当我想通过启动脚本将其妖魔化时,uwsgi会报告以下错误:

2012/11/06 12:50:08 [error] 1773#0: *10 connect() to unix:///tmp/uwsgi_mysite.sock failed (111: Connection refused) while connecting to upstream, client: 91.66.145.99, server: *.mysite.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/uwsgi_mysite.sock:", host: "mysite.com"

(这看起来像权限问题)

我的启动脚本看起来像这样

# file: /etc/init/uwsgi_mysite.conf 
description "uWSGI server"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec /home/ubuntu/uwsgi-1.3/uwsgi --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket 777 --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env

我尝试以ubuntu用户身份执行启动命令 exec sudo -u ubuntu "command...” 但无济于事。

我还尝试通过传入

来更改套接字文件的权限
--chmod-socket 777

但也没有运气。我不知道如何解决这个问题,任何意见都表示赞赏!

1 个答案:

答案 0 :(得分:2)

我认为连接错误是由/tmp/uwsgi_mysite.sock文件的权限问题引起的。

尝试将“ - youY YOURNAME --gid www-data”和“--chmod-socket 666”选项添加到您的upstart脚本中,如下所示。并确保YOURNAME位于www-data组(默认的nginx组)。

exec /home/ubuntu/uwsgi-1.3/uwsgi --uid YOURNAME --gid www-data --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket 666 --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env