Nginx从多个位置读取文件

时间:2019-07-01 11:39:19

标签: nginx nginx-location

对不起,我是nginx的新手,如果问题不清楚,请向我指出一些方向。 我在xyz.jpg中有一个图片Disk-1,在abc.jpg中有一个图片Disk-2,当我调用url:../image/xyz.jpg时,会显示xyz.jpg (Disk-1)通过在我的nginx的文件中使用alias。问题是: 有什么方法可以呼叫../image/abc.jpgabc.jpg (Disk-2)会出现吗?

location /image/ {
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public";
            alias  /image_data/;
        }

编辑:我使用了try_files,但是没有用

        location @image2  {
           alias /image_data_2/;
           try_files $uri $uri/ =404
        }

        location /image/ {
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public";
            alias /image_data/;
            try_files $uri $uri/ @image2;
        }


1 个答案:

答案 0 :(得分:1)

因此,您要检查两个文件夹中的图像,以匹配以/image/开头的URI。

您可以使用正则表达式 location块捕获前缀后面的URI部分,从而避免使用alias指令。正则表达式的位置按顺序求值,因此该块在server块内的位置很重要。有关详细信息,请参见this document

location块的保护下,将root设置为公共父目录(在本例中为/),并使用{{1}构造文件的路径。 }。

例如:

try_files

有关详细信息,请参见this document