Php 如何将nginx proxy_pass配置为保存器编码的url

Php 如何将nginx proxy_pass配置为保存器编码的url,php,ruby,nginx,module,proxy,Php,Ruby,Nginx,Module,Proxy,这是我的情况 我写了一个nginx模块。一个步骤是发送一个子请求,从外部站点下载一个文件,如下所示 ngx\uhttp\u子请求(r,&(ctx->uri),&(ctx->uri\u参数),&sr,NULL,0) 上面的uri如下所示/aliyun_download/testbala.pdf url_参数如下所示。参数是url编码的 OSSAccessKeyId=dCPhhptMqGgftrD5&Signature=Hiu%2F67oTrNATZXhvwmH1dphEyjE%3D&Expires

这是我的情况

我写了一个nginx模块。一个步骤是发送一个子请求,从外部站点下载一个文件,如下所示

ngx\uhttp\u子请求(r,&(ctx->uri),&(ctx->uri\u参数),&sr,NULL,0)

上面的uri如下所示/aliyun_download/testbala.pdf url_参数如下所示。参数是url编码的

OSSAccessKeyId=dCPhhptMqGgftrD5&Signature=Hiu%2F67oTrNATZXhvwmH1dphEyjE%3D&Expires=1402323454

我编写的nginx配置如下所示

 location /aliyun_download/ {
            proxy_pass http://dev-data-primary.aliyuncs.com/;
 }
但我的问题是,我用来下载文件的url是url编码的,但nginx似乎在代理过程中自动解码url,并将未编码的url发送到外部服务器。因为外部服务器需要编码的url,所以它返回错误

一些nginx专家能帮我弄清楚如何解决这个问题或正确配置nginx吗


非常感谢

也许答案会有帮助。作为第一个快速故障排除,请尝试删除尾部斜杠:
proxy\u passhttp://dev-data-primary.aliyuncs.com;我之前看过这篇文章并尝试过,解决方案似乎不适用于me@YuanCheng,也许会有所帮助?可能是