如何延长OpenStack Horizon登录有效期 避免频繁自动登出
OpenStack Horizon 频繁自动登出解决方案
Horizon 自动登出通常由 Keystone 签发的 JWT 令牌过期、或是 Horizon 自身的会话超时配置导致,以下是不同场景的解决方案:
无需修改服务端配置的方案
- 浏览器定时心跳脚本:使用 Tampermonkey 等用户脚本管理器,编写简单的定时请求逻辑,每10~15分钟向 Horizon 页面的轻量接口(比如用户信息查询、资源统计接口)发送一次异步请求,主动刷新令牌有效期,避免无操作时令牌过期。请求间隔不要设置过短,避免给服务端造成额外负载。
- 手动触发刷新:操作间隙每隔一段时间点击页头的资源刷新按钮、或是切换一次项目/区域选项,不需要重载整个页面,即可主动续期令牌。
上述方案仅在管理员未配置强制最长会话时长限制时生效,如果 Keystone 侧配置了无论活跃与否都强制到期的会话规则,以上操作无法绕过该限制。
需修改服务端配置的长效方案
如果有服务端操作权限,调整以下两个配置即可大幅延长超时时间:
- 调整 Keystone 令牌有效期:编辑配置文件
/etc/keystone/keystone.conf,找到[token]配置段,修改expiration参数值(单位为秒),例如设置为8小时可修改为:
[token] expiration = 28800
修改完成后重启 Keystone 服务生效:systemctl restart keystone
- 调整 Horizon 会话超时配置:编辑配置文件
/etc/openstack-dashboard/local_settings,修改SESSION_TIMEOUT参数值,保持和 Keystone 令牌有效期一致:
SESSION_TIMEOUT = 28800
修改完成后重启 Horizon 对应的 Web 服务和缓存服务生效,例如下列命令适配 CentOS 发行版:systemctl restart httpd memcached
内容的提问来源于stack exchange,提问作者aef
相关产品推荐
相关产品推荐

