【问题标题】:Django/Nginx 403 Error on new static files新静态文件上的 Django/Nginx 403 错误
【发布时间】:2018-12-31 21:05:51
【问题描述】:

不知道为什么,但是在收集新的静态文件(collectstatic)后,nginx 抛出 403 错误

新文件与旧静态文件具有不同的权限。

-rw-rw-r--  1 django django  115206 Jul  9 15:23 dom.jpg
-rw-r-----  1 django django     884 Jul 23 20:42 error.svg
-rw-rw-r--  1 django django  308934 Mar 11 16:30 header.bmp
-rw-rw-r--  1 django django   20188 Mar 11 16:30 header.jpg
-rw-r-----  1 django django     910 Jul 23 20:42 success.svg
-rw-rw-r--  1 django django    1826 Jul  9 15:23 user.svg

如您所见 - error.svgsuccess.svg 具有不同的权限,这就是 nginx 抛出 403 的原因。

你知道如何解决这个问题吗?我不想只更改现有文件的权限,我想要通用解决方案,这样就不会再发生这种情况了。

顶部

返回这个:

 9143 django    20   0   59124   6580   4904 S  0.0  1.3   0:07.44 gunicorn                                                                                                                         
 9149 django    20   0  213640  67600   8692 S  0.0 13.5   0:07.91 gunicorn                                                                                                                         
 9150 django    20   0  215224  68680   8520 S  0.0 13.7   0:08.95 gunicorn                                                                                                                         
 9151 django    20   0  215056  68420   8512 S  0.0 13.7   0:09.32 gunicorn
32386 root      20   0  126132   1168    684 S  0.0  0.2   0:00.00 nginx                                                                                                                            
32387 www-data  20   0  127076   4580   3308 S  0.0  0.9   0:03.43 nginx

【问题讨论】:

  • 您是否使用django 用户运行您的网络服务器?
  • 你能让你的服务器运行命令whoami 并将其打印到日志文件(或类似的东西)。我认为服务器 notdjango 运行。
  • @WillemVanOnsem 我不确定哪个服务器 - nginx 或 gunicorn,我在问题底部添加了 top 命令的结果。
  • 那么顶部nginx 是-如果我没记错的话-您调用的那个将获得端口(因为1024 以下的端口需要root 访问权限),但随后它将控制权传递给孩子与另一个用户一起跑步,以降低风险。如果将www-data 添加到django 组会怎样?
  • 例如sudo usermod -a -G django www-data

标签: python django ubuntu nginx django-staticfiles


【解决方案1】:

您是否在此文件上尝试过 chmod 644 ?

【讨论】:

  • 我认为,如果我正确阅读了这个问题,这实际上是 OP 想要避免的。此外,由于所有者是django 用户,如果服务器配置正确,它应该可以工作。
猜你喜欢
  • 2015-03-13
  • 2015-04-28
  • 2019-01-30
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2018-02-20
相关资源
最近更新 更多