我可以使用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对其进行解码呢?