【问题标题】:Server files from /media/ using nginx使用 nginx 来自 /media/ 的服务器文件
【发布时间】:2013-03-13 08:43:43
【问题描述】:

如果这是一个非常愚蠢的问题,请先道歉。

好的 - 我正在使用 Flask + nginx 编写一个供个人使用的小应用程序。

我已经设置了 nginx 和烧瓶,并且 nginx 非常高兴地为 Flask 应用程序的静态资产提供服务。我现在要做的是在 Ubuntu 服务器上服务器来自 /media/ 的所有媒体文件。

基本上,我希望 nginx 能够访问和服务于/media 上可用的任何文件,可以是 USB 驱动器、SD 卡等。

我已经为 nginx 设置了静态和媒体的别名:

location /static {
    alias /path/to/my/app/static;
}

location /media {
    alias /media;
}

我很确定 nginx 很高兴,因为如果我将静态路径复制到媒体别名,我就会得到我的静态文件。

在我指向localhost/media 的那一刻,我只是得到一个空页面(不是 nginx 403 禁止页面)。

我已尝试将/media 的权限更改为 744 - 没有更改。是否有一些根本原因导致我无法“看到”/media 目录?

非常感谢任何帮助。

【问题讨论】:

    标签: nginx


    【解决方案1】:

    这看起来像是权限问题。可执行位需要通过目录,所以我猜chmod -R 0755 /media 可以解决问题。有一种方法可以仅将其应用于更安全的目录,但即使在所有文件上,个人使用也不是问题。

    【讨论】:

    • 所以经过一些修复和更改权限后,我可以看到带有 nginx 的 /media 目录。但是,我不能再深入到 SD 卡中。现在我得到了实际的 403 页面。为了确保 nginx 能够看到任何 USB 驱动器/ sd 卡上的所有文件,最好的方法是什么?我应该将 nginx 权限更改为 root 吗?
    • 不要给 nginx root 权限,任何人都认为这是个坏主意。我认为你在哪里也取决于你的可移动媒体的文件系统类型。在这里我不得不说我不确定以下内容,但也许给用户组提供 www-data 可以帮助你。这与以 root 身份运行 nginx 的想法相同,但危险性要小得多。值得一试。
    • @Darwin Tech - 如果您能找出媒体上的文件属于哪个用户和组,那将有很大帮助。
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2014-10-27
    • 2018-10-08
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多