我有一个用于后端的 proxy_pass,但在这种情况下,我应该提供一些存储在目录中的静态文件。我试过这个:
server {
listen 8180;
location ~ ^/Backend?.(gif|jpg|png|jpeg|pdf|xls|xlsx)$ {
root /data/images;
}
location /Backend {
proxy_pass http://docker-conciliador;
}
}
但是当我尝试 URL 时/Backend/12345.jpg
它不起作用。
我怎样才能为特定位置创建一个正则表达式,并使该位置也具有 proxy_pass???
答案1
您的正则表达式^/Backend?.(gif|jpg|png|jpeg|pdf|xls|xlsx)$
不正确,并且会匹配如下内容:
/BackendAgif
/BackenBjpg
因为?
代表“匹配一次或不匹配”,所以它实际上读作“d”或不匹配。点.
代表任何一个字符。
正确答案是:
location ~ ^/Backend/.*\.(gif|jpg|png|jpeg|pdf|xls|xlsx)$ {
root /data/images;
}
其中,.*
为任意字符,无字符或任意数字。 为\.
点(转义)。