网站首页 > 博客文章 正文
问题描述
一个前后端分离的运营管理平台,前端基于Vue3.0开发,后端基于SpringBoot+OAuth2.0实现,在开发环境一切正常,部署上线后,用Nginx发布静态前端,并反向代理后端服务,发现能够正常获取到token信息,确无法获取用户信息,登录失败,卡死.....
经排查发现前端项目先获取access_token,一切正常,但通过access_token获取用户信息时就无法获取到了。
问题原因
当我们用nginx 作为反向代理服务器,导致了 Spring 认证代码中,无法正确获取服务正确的IP和端口地址,也就是说调用地址和认证地址不一致了,跳转的是request的FullRequestUrl,最后导致了 redirectUri 无法正确匹配从而认证失败。比如用Nginx代理后地址是192.168.1.5/serveradmin,而服务原地址是192.168.1.8:8019/admin,这样的话IP地址、端口、scheme都不一致,redirectUri的是192.168.1.5/serveradmin,请求不到真正的服务,因此无法认证。
解决思路
将nginx 和 tomcat 进行设置,将host、scheme等信息设置一致,可以用swaggerUI开放出认证测试,用代理出来的地址和原地址都能在swaggerUI中访问就可以了。
1、springboot项目配置
remote-ip-header: "X-Forwarded-For"
protocol-header: "X-Forwarded-Proto"
protocol-header-https-value: "https" //这个可以是http,如果是https的话在nginx对应ssl只能用https访问,http可以对应80用http访问
2、nginx配置
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host:$server_port;
猜你喜欢
- 2024-12-04 如何用nginx配置https加密访问?
- 2024-12-04 给Frp穿透的内网Web上https
- 2024-12-04 k8s部署ingress-nginx以及配置http/https访问
- 2024-12-04 在windows上用Nginx做正向代理
- 2024-12-04 技术大佬教你如何使用Nginx在公网上搭建加密数据通道?
- 2024-12-04 nginx正向代理配置
- 2024-12-04 nginx实现内外网访问限制
- 2024-12-04 Nginx代理上网,连接企业微信API,报错41004
- 2024-12-04 如何在nginx下配置ssl证书实现https访问,小白都会【超详细】
- 2024-12-04 NGINX 路由配置与参数详解(https配置、跨域配置、socket配置)
你 发表评论:
欢迎- 08-03 Docker 命令入门实战:搞懂这些才算真正入门!
- 08-03Docker 常用命令分类汇总
- 08-03docker常用命令大全,看这一篇就够了
- 08-03Docker命令大全详解(39个常用命令)
- 08-03Docker 常用命令手册
- 08-03Docker命令最全详解(39个最常用命令)
- 08-03Docker命令最全详解(29个最常用命令)
- 08-03C++语法进阶-字符:字符变量(char)
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)