1

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

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

/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

但这里也没有运气。我对如何解决这个问题一无所知,感谢任何输入!

4

1 回答 1

2

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

尝试将“--uid YOURNAME --gid www-data”和“--chmod-socket 666”选项添加到您的新贵脚本中,如下所示。并确保 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
于 2013-10-14T11:06:54.393 回答