验证码总是失效问题

问题:

项目的验证码一直不正确,怎么输入都错,后来从网上找了各种解决方法,有说 src=”” 会执行两次加载事件的,后来通过火狐浏览器去调试确实发现有这个问题,代码如下:

不过这个问题还是解决不了,因为不知道用什么方法来阻止它执行两次,后来又研究了好久还是不行。

定位问题:

一位同事看完之后发现每次请求的 jessionid 不一样,这时候意识到是跟 jessionid 应该有些关系,后来直接通过 ip 去访问发现验证码验证正常,通过域名访问不行,到这个时候终于知道问题的原因了,那就是:域名解析到 tomcat 之后出现了问题:就是 nginx 这边把请求指向了2个不同的 tomcat,但是本身这个项目没有使用 session

共享的机制,于是就出现了上面的问题,验证码在 tomcat1中生成,但是验证却在 tomcat2中进行验证,这样自然每次的验证码都是有问题的。

解决问题:

既然问题是因为 session 共享的问题,那么问题就简单了,我们直接在 nginx 端使用 ip_hash 来解决session 共享的问题(实际上对 ip 进行 hash 之后我们就不需要session 共享了)保证了每个ip访问的 tomcat 都是同一个,这样验证自然就通过了;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值