这是我的情况。
我写了一个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的。
非常感谢!