当前位置:首页 > 技术文章 > 正文内容

解决nginx多负载下+tomcat部署项目会话路径改变导致的401问题

arlanguage4个月前 (01-14)技术文章31

一、问题描述:app的请求登录接口成功后,再次访问其他接口报错401


二、部署逻辑图:



三、排查过程:

1、使用nginx,模拟第三方代理:



2、我方nginx,监听8084端口, 直接用根目录接收:



3、postman模拟请求登录接口:

http://127.0.0.1:8085/firstproxy/apptest/api/login?username=aaa&password=abc

正常返回:


访问业务接口:



问题重现:正常登录后,访问业务接口报错401??!!


开始以为是nginx没有带上cookie,导致会话丢失,故在nginx日志增加$http_cookid



查看日志情况,cookie是有的:



再次比较两次服务端返回的cookie发现,会话路径不是/,而是/apptest/, 表明登录成功的会话路径是/apptest/,而再次请求的会话路径是 /,所以服务端认为你没有登录,报错401了。



四、解决:

第一种方法:

修改tomcat会话路径:在\conf\context.xml增加如下配置:默认用项目名称做会话路径,修改为/。



再次测试,可以正常返回:



此次登录接口的会话路径为/



第二种方法:

采用jar包方式部署,这种原理和第一种一样,亲测可以。


第三种方法:


修改nginx配置,增加如下行,可以将/apptest的cookie输出到/上



重启nginx



再次测试可以



再次查看登录接口返回的cookie,会话路径变为/,问题解决。


以上就是对登录后出现401问题的总结,不知道对你们有帮助没?


码字不易,记得点赞加关注哦!!

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/846.html

标签: nginx 替换
分享给朋友:

“解决nginx多负载下+tomcat部署项目会话路径改变导致的401问题” 的相关文章

免费泛域名SSL证书申请教程

申请免费泛域名证书的过程通常涉及以下几个步骤:选择证书颁发机构(CA)首先,您需要选择一个提供免费泛域名证书的证书颁发机构(CA)。目前,JoySSL是个提供免费泛域名证书的知名机构。注册并登录账户访问所选JoySSL的官方网站,注册一个新账户。填写特定的注册码230923以获得申请免费通配符证书的...

Java 加密解密和数字签名

在做项目中,只要涉及敏感信息,或者对安全有一定要求的场景,都需要对数据进行加密。在Java中原生API即可实现对称加密与非对称加密,并支持常用的加密算法。对称加密对称加密使用单钥完成加解密,加密和解密采用相同的密钥。对称加密的速度快,常用于大量数据进行加密。主流的算法有:AES,3DES。生成3DE...

基于 consul + nginx 的Spring boot微服务集群部署

consul + nginx 负载均衡最近做的基于consul的微服务项目,仅仅在单机上部署了一套,压测的时候扛不住(并发太高的时候linux文件连接数超过上限),于是想办法搞个集群部署。最终在我们的服务器的三台机器(mirage05-mirage07)上完成部署。一. 背景介绍以及项目现状1. c...

Nginx从入门到放弃03-Nginx调优

一、调优的必要性在聊调优之前,我们先要知道为何调优,业务运行和调优的关系。笔者把自己总结的文档分为几遍,合集在 https://g.xgss.net/nginx/业务运行:线上业务正常运行,承载了公司业务。 监控业务:通过监控业务对线上业务进行监控,及时发现问题。 优化业务:通过监控分析,发现业务问...

nginx四层转发:nginx配置ftp反向代理

#nginx转发控制线路server {#nginx代理端口 listen 21212; proxy_timeout 120s; proxy_connect_timeout 120s; proxy_pass fx_ftp; } upstream fx_ftp{ hash $remote_addr c...

07《Nginx 入门教程》Nginx 的 Http 模块介绍(上)

本部分内容将详细介绍 Nginx 中对 Http请求的 11 个处理阶段,分成 3 个小节讲解并进行相关实验操作。1. http 请求 11 个处理阶段介绍Nginx 将一个 Http 请求分成多个阶段,以模块为单位进行处理。其将 Http请求的处理过程分成了 11 个阶段,各个阶段可以包含任意多个...