Nginx从多个位置读取文件

Nginx从多个位置读取文件,nginx,nginx-location,Nginx,Nginx Location,对不起,我是新来nginx的,如果问题不明确,请给我指一些方向。 我在Disk-1中有一个imagexyz.jpg,在Disk-2中有一个imageabc.jpg,当我调用url:。/image/xyz.jpg时,xyz.jpg(Disk-1)在我的nginx文件中使用别名显示。问题是: 有没有办法调用。/image/abc.jpg,就会出现abc.jpg(Disk-2) location /image/ { expires max; add_he

对不起,我是新来nginx的,如果问题不明确,请给我指一些方向。 我在
Disk-1
中有一个image
xyz.jpg
,在
Disk-2
中有一个image
abc.jpg
,当我调用url:
。/image/xyz.jpg
时,
xyz.jpg(Disk-1)
在我的nginx文件中使用
别名
显示。问题是:
有没有办法调用
。/image/abc.jpg
,就会出现
abc.jpg(Disk-2)

location /image/ {
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public";
            alias  /image_data/;
        }
编辑:我使用了
try\u文件
,但不起作用

        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;
        }



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

您可以使用正则表达式
location
块捕获前缀后面的URI部分,这样可以避免使用
alias
指令。正则表达式位置是按顺序计算的,因此块在
服务器
块中的位置非常重要。有关详细信息,请参阅

位置
块的保护范围内,
被设置为一个公共父目录(在本例中为
/
),并使用
try\u files
术语构造文件的路径

例如:

location ~ ^/image/(.*)$ {
    expires max;
    add_header Pragma public;
    add_header Cache-Control "public";

    root /;
    try_files /image_date/$1 /image_data_2/$1 =404;
}

有关详细信息,请参阅。

您可以使用
try\u文件
尝试多个位置。是否有一个公共目录可以用作磁盘1和磁盘2的
根目录
。。