nginx.conf中没有带`try_files`的本地文件时,如何从URL获取文件?

bqujaahr  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(170)

假设你有一个请求,请求下面的json文件。

https://example.com/static/xxx/fileName.json

我想知道当没有本地文件时如何从URL获取文件。看起来我可以使用@external将请求移动到另一个位置,但是如何传递文件名沿着呢?

server_name example.com;

# location-A
# Ignore the $0. The $1 is the file name.
location ~ ^\/static\/[0-9a-zA-Z\-_]+\/([0-9a-zA-Z\-_]+.json) {
    alias /abc/nginx/html/;
    try_files $1 @external;
}

# location-B
# I want to retrieve a file from an external URL, how do I pass $1?
location @external{
    # proxy_pass https://example123456789.com/path/$1;
}
h5qlskok

h5qlskok1#

使用rewrite获取您需要的URL部分。

location @external {
  rewrite ^\/static\/[0-9a-zA-Z\-_]+\/([0-9a-zA-Z\-_]+.json)$ $1 break;
  proxy_pass https://example123456789.com/path;
}

相关问题