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

devtools/2024/11/8 10:41:29/

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.ppmy.cn/devtools/132284.html

相关文章

Spring Boot 与 Vue 共筑航空机票预定卓越平台

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

微服务day02

教学文档: 黑马教学文档 Docker Docker的安装 镜像和容器 命令解读 常见命令 案例 查看DockerHub,拉取Nginx镜像,创建并运行容器 搜索Nginx镜像:在 www.hub.docker.com 网站进行查询 拉取镜像: docker pull ngin…

使用swagger3.0踩过的坑

1.出现这个错误: 原因是: 改成: 就可以了 2.参数框框里面输入不了值 点击try it out ,就可以输入了

06 网络编程基础

目录 1.通信三要素 1. IP地址(Internet Protocol Address) 2. 端口号(Port Number) 3. 协议(Protocol) 2.TCP与UDP协议 三次握手(Three-Way Handshake) 四次挥手(…

Linux学习笔记之时间日期和查找和解压缩指令

时间日期类 date指令-显示当前日期 date (显示当前时间) date %Y (显示当前年份) date %m (显示当前月份) date %d (显示当前那一天) date “%Y-%m-%d %H:%M:%S” (显示…

植物神经功能紊乱?这些维生素或许能帮到你!

植物神经功能紊乱,这个听起来有些陌生的名词,实际上却是一种常见的内脏功能失调综合征。它可能与心理、遗传、疾病等多种因素有关,表现为多个系统的症状,如睡眠障碍、心悸、头痛、胸闷、多汗等,严重影响了患者的生活质…

集合进阶------泛型(JAVA笔记第三十期)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解 目录 泛型概念泛型类泛型接口泛型接口的实现类泛型方法可变参数的泛型方法 泛型的通配符 泛型概念 泛型,顾名思义,广泛的类型,使用泛型可以帮助我们…

Docker配置宿主机目录和网络映射

容器挂载宿主机目录 在Docker中,你可以通过-v或--volume选项将宿主机的目录挂载到容器中。这可以让你在容器和宿主机之间共享文件。 例如,如果你想将宿主机的/home/user/data目录挂载到容器的/data目录,你可以使用以下命令: do…