首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx:读取NJS子请求的响应头

nginx:读取NJS子请求的响应头
EN

Stack Overflow用户
提问于 2020-11-13 10:25:33
回答 1查看 482关注 0票数 0

我正在尝试使用nginx的njs模块和子请求将两个请求链接在一起。我可以看到在响应头中返回了special_value,但是我不知道如何使用proxy_set_header来读取值。以下代码将导致X-Special-Value中的值为空值

nginx.conf:

代码语言:javascript
复制
location ~* /step_one {
  js_content njs_func;
}

location ~* /step_two {
  proxy_pass       http://some_other/api;
  proxy_set_header X-Special-Value      $http_special_val;
}

http.js

代码语言:javascript
复制
function njs_func(r) {
    r.headersOut['special_val'] = '42';
    r.subrequest('/step_two')
     .then(reply => r.return(reply.status, reply.responseBody));
}
EN

回答 1

Stack Overflow用户

发布于 2021-01-13 04:15:45

你可以这样做:

nginx.conf

代码语言:javascript
复制
set $specialValue "";

location ~* /step_one {
  js_content njs_func;
}

location ~* /step_two {
  proxy_pass       http://some_other/api;
  proxy_set_header X-Special-Value      $specialValue;
}

https.js

代码语言:javascript
复制
function njs_func(r) {
    r.variables.specialValue = '42';
    r.subrequest('/step_two')
     .then(reply => r.return(reply.status, reply.responseBody));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64814598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档