Nginx做反向代理转发请求默认忽略带下划线的请求头

您所在的位置:网站首页 nginx协议转发 Nginx做反向代理转发请求默认忽略带下划线的请求头

Nginx做反向代理转发请求默认忽略带下划线的请求头

2023-05-31 12:06| 来源: 网络整理| 查看: 265

现象:

       在本地可以正常获取前端header传的参数,但是部署到服务器后无法获取前端传的请求header(服务器地址使用nginx做了代理转发)

原因:

       nginx对header name的字符做了限制,默认 underscores_in_headers 为off,表示如果header name中包含下划线,则忽略掉,部署之后就获取不到。

解决:

1、在header里不要用 “_” 下划线,可以用驼峰命名或者其他的符号(如减号-)代替。nginx默认忽略掉下划线可能有些原因。

2、在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers on;(默认值是off)

网上找到了下面一段nginx源码,有对下划线进行检测处理:

变量:allow_underscores,是否允许下划线

ngx_http_parse_header_line(ngx_http_request_t *r, ngx_buf_t *b,ngx_uint_t allow_underscores) if (ch == '_') { if (allow_underscores) { hash = ngx_hash(0, ch); r->lowcase_header[0] = ch; i = 1; } else { r->invalid_header = 1; } break; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3