首页 > 解决方案 > nginx 为特定位置提供特定目录

问题描述

我需要用于开发目的(当然不是用于生产),以提供位于我的文件夹 /app/logs/ 中的日志。

所以我设置了这样的配置:

    server {
        listen 80;
        server_name server-name.com;
        error_log  /app/logs/error.log warn;
        access_log /app/logs/access.log compression;
        root /var/www;

        location /info/logs/ {
            alias /app/logs/;
            autoindex on;
        }

        location / {
          // others route working
        }
    }

但是每次我尝试使用http://server-name.com/info/logs/django.log访问类似 /app/logs/django.log 的东西时,我得到一个 404 而不是我要求的文件。

我已经尝试了很多方法,例如 chmod -R 755 整个文件夹或将文件夹设置为用户 nginx 使用(在我现在的情况下,我知道这很糟糕),尝试了 root 或 try_files 但我无法访问它。 ..

我在这里和那里看到了很多主题,但找不到线索......

你能帮我解决这个问题吗?

PS:我在其他位置的开头需要根 /var/www。

PS2:我使用的是基于 Debian 9 的 Docker。

标签: nginx

解决方案


好的,我发现了我的问题,我有这样的路线:

# Any route containing a file extension (e.g. /devicesfile.js)
location ~ ^.+\..+$ {
    try_files $uri =404;
}

而且我不知道尽管它是在第一个位置之后,但它会被选择而不是另一个位置......

还是要谢谢你的帮助 !


推荐阅读