Nginx 从多个位置读取文件
Nginx reads file from multiple locations
对不起,我是nginx的新手,如果问题不明确,请指点我一些方向。
我在 Disk-1
中有一个图像 xyz.jpg
,在 Disk-2
中有一个图像 abc.jpg
,当我调用 url:../image/xyz.jpg
时,xyz.jpg (Disk-1)
通过在我的 nginx 文件中使用 alias
显示。问题是:
有什么方法可以调用../image/abc.jpg
,abc.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;
}
因此您要检查两个文件夹中的图像以匹配以 /image/
开头的 URI。
您可以使用 正则表达式 location
块来捕获前缀后面的 URI 部分,从而避免使用 alias
指令。正则表达式位置按顺序计算,因此块在 server
块中的位置很重要。有关详细信息,请参阅 this document。
在 location
块的保护下,root
被设置为公共父目录(在本例中为 /
)并使用 [= 构建文件路径18=] 项。
例如:
location ~ ^/image/(.*)$ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
root /;
try_files /image_date/ /image_data_2/ =404;
}
详情见this document。
对不起,我是nginx的新手,如果问题不明确,请指点我一些方向。
我在 Disk-1
中有一个图像 xyz.jpg
,在 Disk-2
中有一个图像 abc.jpg
,当我调用 url:../image/xyz.jpg
时,xyz.jpg (Disk-1)
通过在我的 nginx 文件中使用 alias
显示。问题是:
有什么方法可以调用../image/abc.jpg
,abc.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;
}
因此您要检查两个文件夹中的图像以匹配以 /image/
开头的 URI。
您可以使用 正则表达式 location
块来捕获前缀后面的 URI 部分,从而避免使用 alias
指令。正则表达式位置按顺序计算,因此块在 server
块中的位置很重要。有关详细信息,请参阅 this document。
在 location
块的保护下,root
被设置为公共父目录(在本例中为 /
)并使用 [= 构建文件路径18=] 项。
例如:
location ~ ^/image/(.*)$ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
root /;
try_files /image_date/ /image_data_2/ =404;
}
详情见this document。