zdd 在 Nginx 代理请求时 Header 消失的问题 中发帖
今天遇到一个问题,查了半天发现是nginx代理搞的鬼。让AI总结了一下,给大家分享
问题现象
发送带有 service_token header 的请求时,服务端始终无法获取到该值(null)。
curl -H "service_token: 123456" 'https://example.com/api'
原因分析
Nginx 默认会忽略包含下划线(_)的 HTTP header。这是基于:
CGI 规范的历史兼容性考虑
避免某些语言(如 PHP)处理 header 时的安全隐患
解决方案
两种方案可选:
修改代码,使用中划线(推荐):
// 修改前
static final String SERVICE_TOKEN_KEY = "service_token";
// 修改后
static final String SERVICE_TOKEN_KEY = "servi...