uwsgi + nginx如何改变群组?

时间:2015-03-09 12:58:02

标签: nginx uwsgi

我正在尝试uwsgi + nginx + django教程,并被卡在那里(链接链接直接到我卡住的部分) https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html#if-that-doesn-t-work

nginx error.log说:

2015/03/09 13:44:51 [crit] 11642#0: *16 connect() to unix:///home/gaucan/temp/my_app/mysite.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///home/gaucan/temp/my_app/mysite.sock:", host: "localhost:8000"

并且教程说要解决它,请执行以下操作: You may also have to add your user to nginx’s group (which is probably www-data), or vice-versa, so that nginx can read and write to your socket properly. 但是我的linux noob并且我不知道如何做到这一点,或者如何找出该组是否是www-data ...在将所有者更改为某些文件夹给用户之前已经做了一些混乱:&#34 ; gaucan"

我也在教程中跳过了这一步: You will need the uwsgi_params file, which is available in the nginx directory of the uWSGI distribution, or from https://github.com/nginx/nginx/blob/master/conf/uwsgi_params 因为我不知道哪个目录是nginx directory of the uWSGI distribution ...

顺便说一句,如果有任何帮助,我会使用FEDORA ......

2 个答案:

答案 0 :(得分:2)

要查找文件的权限:

ls -al unix:///home/gaucan/temp/my_app/mysite.sock

这将打印一些信息列,其中第一列将是unix权限:

-rw-rw-r--   1 user group  1234 Mar 9 2015  name of file

第一个破折号是特殊的,只是忽略它。接下来的三个字符表示拥有该文件的用户的读取,写入和执行权限。接下来3代表拥有该文件的组。最后3个代表其他人。

nginx进程需要能够写入该套接字文件。

您不必将您的用户添加到与nginx相同的组中,但您需要在套接字上允许适当的权限。所写的那些说明对我来说没有任何意义。

- 将用户添加到论坛的说明 -

要查找流程的用户:

ps aux | grep nginx

其中一个输出列将是nginx进程的用户

要了解您所属的群组:

groups

这将打印您所属的空格分隔的unix组列表。

设置您所属的组的全新列表

sudo usermod -G group1,group2  username

请注意,这些组以逗号分隔,它们将清除所有现有组,因此您需要使用逗号将所有现有组重新键入该命令。

或者,使用usermod: - / p>的--append标志

sudo usermod --append www-data username

您必须完全注销并再次登录才能获得新群组的效果。 (可能存在重新加载组的快捷方式,但我不知道其中一个)

答案 1 :(得分:0)

不确定我做错了什么,但仅仅花了一整天后,我重新尝试了教程,但我试图将所有配置直接写入/etc/nginx/nginx.conf然后它确实有效......所以那是教程中的错误步骤(创建自己的mysite_nginx.conf,然后使用某些已启用的网站进行符号链接,这在nginx的新版本中甚至不存在...)

也确实在/tmp/sock.sock mb中放置了套接字,这也有帮助..