💣💣💣 Nginx反向代理----携带特殊符号参数

背景

前端要在登录成功后,在项目中后续所有请求里面,携带一个公共参数 user_id , 方便后端去做权限的控制,商量后决定由前端封装在Request Headers请求头里面 ,后端自行去取。

过程

开始封装公共请求头,让项目中每一个请求都会携带user_id ,实际值由登录接口返回,示例demo代码如下。

测试环境打包 ==> 部署测试ok ==> 准备上线生产环境

暴露问题

生产环境突然反馈,说是无法登录,点击就报参数不全,截图后发现,后端在生产环境,获取不到user_id ?? 这可严重了,生产环境无法登录,等于是阻塞在了最前面,领导很生气,后果很严重。。。但复盘下来,也就是加了一个参数,而且写法很传统,应该没什么问题,找生产的小伙伴要了日志,发现确实获取不到参数

复盘问题

唯一区别,就是生产环境的接口请求,使用了Nginx代理,而Nginx又有茫茫多的配置项,想一想平时经常用的也就是拦截请求,请求头,请求参数,请求分流这些,难道是请求参数有什么特殊的配置项吗?还真有!

underscores_in_headers (默认off)

作用:开关请求头字段是否支持下划线'_'特殊符号命名,例如user_id 是否会被nginx过滤掉

参数: on ,off

解决问题

打开nginx.conf文件,在http模块中加入这个配置,即可使用带下划线的参数

😊 😊 😊其实在请求头里使用参数的时候,能不加特殊符号最好,万一碰上我这种特殊需求的,记得检测一下有没有这个配置,没有的话记得加上 😊 😊 😊

相关推荐
吴声子夜歌12 小时前
Nginx应用与运维——Nginx集群负载与配置管理(二)
运维·nginx
cpolar技术支持13 小时前
外网测试机的异常传不回内网?自托管 Sentry,用 cpolar 打通错误上报链路
python·nginx·docker·cpolar·sentry
大纽耶耶15 小时前
我把 YOLO 训练做成了网页版:需求设计与技术选型
vue.js
大纽耶耶15 小时前
开发 YOLO 训练管理平台的 23 个实践教训
vue.js
Maynor在掘金15 小时前
1.9 万 Star 的 Hypit:让 AI Agent 帮你“一键复刻”爆款视频,保姆级上手教程
vue.js·github
ym hyd 11115 小时前
门诊挂号系统源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设
斯内普吖16 小时前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
吴声子夜歌17 小时前
Nginx应用与运维——Nginx在Kubernetes中的应用(一)
运维·nginx·kubernetes
可乐鸡翅yeah_17 小时前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线
Q264336502317 小时前
【有源码】基于SpringBoot+Vue的博物馆展览与服务一体化平台-java博物馆数字化展品展示与交互平台设计
java·vue.js·spring boot·spring·毕业设计·javaweb·课程设计