当前位置: 首页 > article >正文

nginx代理出现的请求头中获取不到acc_token问题

1.问题

  1. 程序开发完成之后,发现页面登录之后,获取不到用户信息。发现时没有获取到token信息。
  2. 本地程序开发完成,后端服务成功署到服务器。
  3. 通过云服务器开放对应的端口,使用本地的前端服务,直接连接服务器后端服务,没问题。
  4. 然后打包前端服务,部署到服务器上,通过nginx转发到后端服务。
  5. 发现页面登录请求时成功,但是通过登录成功获取的token获取用户信息发现找不到token值。后端打印出来的日志也是null的token.

3.找到问题

发现直连程序没问题,但是通过nginx之后就获取不到token,那么问题肯定出在nginx上。
经过排查,发现Nginx配置文件中的proxy_set_header指令也正确。

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://backend_server;
}

还是没有获取到token,最后发现token传值是请求头中加的acc_token的key,这下问题找到了。因为NGINX对header中下划线(_)不支持。nginx默认request的header的那么中包含’_’时,会自动忽略掉。这下就好处理了。

4.处理问题

方法一:
不支持"_“直接修改请求头的下划线,改成”-"符号,acc_token改成acc-token
方法二
简单粗暴,直接让nginx不忽略下划线:在nginx中的http请求部分,加上

underscores_in_headers on; 

在这里插入图片描述


http://www.kler.cn/a/386416.html

相关文章:

  • 软件测试面试大全(含答案+文档)
  • 马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察
  • Axure设计之文本编辑器制作教程
  • 【OH】openHarmony开发环境搭建(基于windows子系统WSL)
  • C++中的栈(Stack)和堆(Heap)
  • AWS认证SAA-C0303每日一题
  • 从零开始训练一个大语言模型需要多少天?
  • Python学习从0到1 day26 第三阶段 Spark ① 数据输入
  • 论文阅读(三十五):Boundary-guided network for camouflaged object detection
  • 设置JAVA以适配华为2288HV2服务器的KVM控制台
  • 游戏中Dubbo类的RPC设计时的注意要点
  • 2024系统架构师---上午综合题真题(重复考试知识难点)
  • 【LeetCode】【算法】279. 完全平方数
  • 【GeoJSON在线编辑平台】(1)创建地图+要素绘制+折点编辑+拖拽移动
  • 图像格式中的 stride 和 pix stide
  • SDL 播放PCM
  • 国内读新加坡公立大学在职博士是一种怎样的体验?还中文授课
  • Python学习从0到1 day27 第三阶段 Spark ③ 数据计算 Ⅱ
  • Nuxt3之使用lighthouse性能测试及性能优化实操
  • MySQL 中的 `IN`、`EXISTS` 区别与性能分析
  • Kubernetes-编排工具篇-01-Kustomize与Helm对比
  • 安装和运行开发微信小程序
  • 贪心算法day2(最长递增子序列)
  • 常见插入排序算法的实现(直接插入排序与希尔排序)
  • 虚拟化负载均衡至少需要几台服务器?
  • Linux服务器网络故障排查命令