nginx proxy_pass 一个文件

jma*_*jma 5 nginx proxypass

我有一个文件,我想显示为托管,但我没有。所以我在我的 nginx 服务器块中写了这个:

location /d-p27.js {
  proxy_pass https://data.example.com/p/piwik.js;
}
Run Code Online (Sandbox Code Playgroud)

重新加载 Nginx 的配置后,当我用 测试它时curl -I https://another.example.com/d-p27.js,我得到 404。 Nginx 日志没有说更多。

所以我试试这个:

location /d-p27.js {
  rewrite ^/d-p27.js$ /p/piwik.js break;
  proxy_pass https://data.example.com/;
}
Run Code Online (Sandbox Code Playgroud)

这也是404的。有什么建议?

解决方案

感谢@RichardSmith,解决方案只是使用精确匹配来避免与其他正则表达式混淆:

location = /d-p27.js {
  proxy_pass https://data.example.com/p/piwik.js;
}
Run Code Online (Sandbox Code Playgroud)