通过express.js将自定义HTTP标头添加到nginx X-Accel-Redirect

时间:2016-11-21 13:20:23

标签: node.js express nginx

我使用带有nginx的X-Accel-Redirect在nodejs中提供受限制的下载。我试图将非标准HTTP标头Header1,Header2中的自定义标头发送到X-Accel-Redirect请求。但这不起作用。

用于执行重定向的rails代码段

  var  httpHeaders={'NonStandardHeader':"Hello"}
  var headers = Object.assign({ 'X-Accel-Redirect': url }, httpHeaders);
     res.writeHead(200, headers);
    res.end();

nginx.conf

 location /microservice/file {
   alias /protected;
  internal;
}
 location /microservice/memcache {
  ... 
  internal;
}

1 个答案:

答案 0 :(得分:2)

我找到了问题的解决方案。将查询字符串传递到内部位置

的NodeJS:

var    url='/microservice/file/a1.json?p=23x&e=22d';
   res.writeHead(200, { 'X-Accel-Redirect': url });
res.end();

nginx.conf

location /microservice/file {
   alias /protected;
    add_header 'NonStandardHeader' $arg_p;
      expires $arg_e;

  internal;
}