502 Bad Gateway,我搞砸了 digitalocean ubuntu 上用于 Django 部署的用户和组权限

502 Bad Gateway, I messed up users and groups permissions on digitalocean ubuntu for django deployment

  1. 我已经在 digitalocen 上成功创建了一个 droplet,一个 ubuntu 18.04 服务器。
  2. 按照安装 digitalocean 的指南和 运行 gunicorn、nginx、django 等和 运行 使用我的 ip 地址在浏览器上成功访问网站,即防火墙、gunicorn 和 nginx,一切都已配置正确。
  3. 在测试期间,将图像上传到媒体文件夹时出现错误 "permissions denied"(POST 错误)。
  4. 在 google 的某处找到以下代码,认为它解决了与权限相关的问题: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 Bad Gateway”。

我对 Linux 部署不是很熟悉。有人可以帮我调查和解决这个问题。我想我弄乱了用户、组权限。

我怎样才能解决这个问题,或者我怎样才能恢复我所做的,或者有没有我可以查看和调查的 activity 日志。

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

提前感谢您的帮助。

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

解决此问题的最简单方法是 运行 sudo chmod -R 766 /var/www/ - 这将向任何人授予写入和读取权限(chmod -R 764 也应该有效并且更安全 - 它只允许为非所有者阅读文件)。或者,您可以找出用户 运行ning uwsgi 的名称,并授予他从目录中读取文件的权限。请参阅 chmod 手册(或 google 它)以供参考。