• 循环登录提示“您为登录或者认证已过期,请重新登录”


    1. 项目场景

    host os:Kylin-Server-10-SP1
    docker: docker-ce-18.09.7
    cloud: openstack queens


    2. 问题描述及原因分析

    云平台web输入正确的用户名和密码后,出现提示“您为登录或者认证已过期,请重新登录”,一直循环往复,登录不了,如下如:
    在这里插入图片描述
    通过F12进入调试模式,然后重新输入再次登录,获取到Internal Server Error及You can’t write a against a read only slave,如下信息:
    在这里插入图片描述
    针对Internal Server Error进一步点击,查看reponse,也是报You can’t write a against a read only slave,从WEB架构了解到采用了redis作为token的缓存,怀疑redis缓存只读不可写有关,进入redis容器,通过redis-cli连接,例如:redis-cli -h x.x.x.x -a $redis_password,进入redis交互模式,执行FLUSHDB,出现了页面的报错,如下:
    在这里插入图片描述验证了猜想,故是redis的问题,简单粗暴的方式就把redis停掉,然后删除数据,重新初始化生成,如下:

    docker stop redis_sentinel redis
    rm -rf /var/lib/docker/volumes/redis/_data/*
    docker start redis_sentinel redis
    
    • 1
    • 2
    • 3

    若是三控,则三个节点均要执行。

    还有可能是时间终端与服务器时间不一致等等情况。


    3. 解决方案

    redis的问题,简单粗暴的方式就把redis停掉,然后删除数据,重新初始化生成,如下:

    docker stop redis_sentinel redis
    rm -rf /var/lib/docker/volumes/redis/_data/*
    docker start redis_sentinel redis
    
    • 1
    • 2
    • 3

    若是三控,则三个节点均要执行。

  • 相关阅读:
    alert() 函数功能
    浅谈架构.补缺.V2
    CLR内存管理机制与IDisposable对象的GC原理
    【Spring Cloud】教你十分钟学会Gateway~
    Python中的pymysql模块连接MySQL数据库,并创建表和插入数据
    为什么MyBatis是Java数据库持久层的明智选择
    PTA 7-190 第几个幸运数
    19_axios入门到进阶
    TiUP 镜像参考指南
    Python和SQL server数据同步更新使用
  • 原文地址:https://blog.csdn.net/nanhai_happy/article/details/126712540