You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx auth_request_set指令取值为空故障排查求助

问题原因

你的配置存在两个核心错误点:

  1. $upstream_*系列变量仅在请求经过proxy_pass、fastcgi_pass等代理指令转发到外部上游服务时才会被赋值。你的/test-auth端点是直接通过return指令在Nginx本地生成响应,没有触发上游请求,所以$upstream_http_x_test和$upstream_status自然始终为空。
  2. auth_request_set指令的取值上下文是auth子请求的作用域,你需要取子请求本地响应对应的变量,而非主请求的上游变量。

修复方案

将/proxy location下的auth_request_set两行配置修改为如下内容即可:

auth_request_set $test $sent_http_x_test;
auth_request_set $test2 $sent_status;

其中$sent_http_x_test对应auth子请求返回的X-Test响应头值,$sent_status对应auth子请求的响应状态码,二者对Nginx本地生成的响应也能正常取值。

如果需要保证X-Test、X-Test2响应头在所有状态码下都正常返回给浏览器,可以给add_header指令补充always参数:

add_header X-Test $test always;
add_header X-Test2 $test2 always;

修改后重新加载Nginx配置,即可看到X-Test、X-Test2头正常返回,上游content服务也能收到对应的test、test2参数。


内容的提问来源于stack exchange,提问作者Alexander Pravdin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:06:04