如何将nginx proxy_pass配置为preserver编码的url

时间:2014-06-09 14:02:54

标签: php ruby nginx module proxy

这是我的情况。

我写了一个nginx模块。一步是发送子请求从这样的外部站点下载文件。

ngx_http_subrequest(r, &(ctx->uri), &(ctx->uri_parameter), &sr, NULL, 0);

上面的uri看起来像这样/aliyun_download/testbalabalabala.pdf url_parameter看起来像这样。该参数是url编码的

  

OSSAccessKeyId = dCPhhptMqGgftrD5&安培;签名=晓%2F67oTrNATZXhvwmH1dphEyjE%3D&安培;过期= 1402323454

我写的nginx配置看起来像这样

 location /aliyun_download/ {
            proxy_pass http://dev-data-primary.aliyuncs.com/;
 }

但我遇到的问题是我用来下载文件的url是url编码的,但似乎nginx在代理期间自动解码url并将未编码的url发送到外部服务器。由于外部服务器需要编码的url,因此会返回错误。

有些nginx专家可以帮我弄清楚我是如何解决这个问题或者正确配置nginx的。

非常感谢!

0 个答案:

没有答案