502坏网关,我搞砸了用户和组在digitalocean ubuntu上的django部署权限


  1. 我已经成功地在digitalocen上创建了一个液滴,一个ubuntu 18.04服务器
  2. 按照安装digitalocean的指南,运行了gunicorn、nginx、django等,并使用我的ip地址(即防火墙、gunicorn和nginx(在浏览器上成功运行了网站,一切都配置正确
  3. 在将图像上传到媒体文件夹的测试过程中,我收到了一个错误"权限被拒绝"(POST错误(
  4. 在谷歌上的某个地方发现了以下代码,并认为它解决了与权限相关的问题:https://www.semicolonworld.com/question/55551/django-errno-13-permission-denied-39-var-www-media-animals-user-uploads-39
sudo groupadd varwwwusers
sudo adduser www-data varwwwusers
sudo chgrp -R varwwwusers /var/www/
sudo chmod -R 760 /var/www/

但上面的代码把一切都搞砸了,并撞上了"502坏网关">

我对Linux部署不是很熟悉。有人能帮我调查和解决这个问题吗。我想我把用户、组权限搞砸了。

我如何解决这个问题,或者我如何恢复我所做的事情,或者我是否可以查看和调查任何活动日志。

我已经检查了error.log,并且能够看到连接到上游时,'connect((到unix:/run/gunicorn.sock失败(111:连接被拒绝(

感谢您提前提供的帮助。

我想问题在于,通过运行sudo chmod -R 760 /var/www/,您已经禁止文件夹的非所有者从该目录中读取、写入和执行文件。然后,由于uwsgi进程不属于www数据组(通常(,因此uwsgi连接被拒绝。

解决这个问题的最简单方法是运行sudo chmod -R 766 /var/www/——这将向任何人授予写入和读取权限(chmod -R 764也应该工作,而且更安全——它只允许非所有者读取文件(。或者,您可以找到运行uwsgi的用户的名称,并授予他从目录中读取文件的权限。请参阅chmod手册(或在谷歌上搜索(以获取参考。

最新更新