nginx proxy_pass 从其他主机下载页面

nginx proxy_pass download page from other host

我需要从其他主机下载pdf文件。

例如:

我的域名。com/bill/55d5e947-edc4-44e0-bee4-c5ffacaf81dd/download

必须从

下载pdf文件

域。com/bill/55d5e947-edc4-44e0-bee4-c5ffacaf81dd/download

我的位置在下方,可能是我遗漏了什么?

         location "/bill/([0-9a-zA-Z]{8})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{12})/download" {
                proxy_pass http://10.130.0.31:8088;
                proxy_set_header content-type "application/pdf";

正则表达式位置匹配始终以 ~~* ~^ 开头,如

location ~ /bill/([0-9a-zA-Z]{8})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{4})-([0-9a-zA-Z]{12})/download {
...
}

你的正则表达式正确吗?我的意思是从技术上讲它是但是您所在位置的 ID 看起来像 UUID?这可能吗?由于 UUID 基本上是十六进制的,并且您已经花费了计算时间来验证位置中的 UUID,因此您应该使用 [a-f0-9] 而不是 [0-9a-zA-Z]。但如果它是一个 UUID 而不仅仅是一个看起来像 UUID 的东西。

工作配置如下所示

 location ~ "/bill/([a-f0-9]{8})-([a-f0-9]{4})-([a-f0-9]{4})-([a-f0-9]{4})-([a-f0-9]{12})/download" {
                proxy_pass http://127.0.0.1:8000;
                proxy_set_header content-type "application/pdf";
}