通过nginx在给定网址下载文件

时间:2018-02-10 02:50:50

标签: nginx reverse-proxy

我可以使用nginx代理来自上游服务器的数据,但是如何使用它来代理来自通过查询字符串参数传入的URL的数据?

这有效,但不完整:

# e.g. http://localhost:8080?u=https://requestb.in/1nm8uv01 -> ok
location / { 
  proxy_pass $arg_u;
  resolver 8.8.8.8;
}

我没有正确编码u参数。当我开始向其添加查询字符串参数时,这是一个问题。例如,这失败了:

# http://localhost:8080?u=https://requestb.in/1nm8uv01?a=b&c=d
  -> incomplete; c is not passed to the upstream

所以对它进行编码吧?编码url参数也会失败:

# http://localhost:8080/?u=https%3A%2F%2Frequestb.in%2F1nm8uv01%3Fa%3Db%26c%3Dd
  -> nginx error: invalid URL prefix in "https%3A%2F%2Freq...

因此,如果我按照上一个示例对参数进行编码,那么在执行请求之前如何让nginx对其进行解码呢?

0 个答案:

没有答案