cas client提供了单点出功能SLO.但对于cas client 在集群环境下的单点登出的情况深入了解的甚少,因为默认情况下它不是很灵,也就是说有时能登出,有时登不出的情况。最近一段时间,在新公司进行技术预演,这个问题又遇到了,所以对于其深入了解一下。
部署说明
对于project_A部署两个tomcat1,tomcat2端口分别为8080,9090,nginx 运行部口80,ip统一为192.168.31.100.cas server部署为单机192.168.31.101:8080;
cas-client.jar 版本号为3.4.1(github上cas client有好多年没有更新了);
cas server 版本号4.1.10,可参见 https://github.com/zhuzhong/cas-web.git
nginx反向代理tomcat1,tomcat2,为了能够顺利登陆,下面三项需要选项一项去作(如果你不知道原因,我也不会告诉你):
nginx路由规则 ip_hash
nginx session sticky
tomcat session集群或session共享;
在这里我选择ip_hash,最终nginx的up_stream部分:
upstream pro_a {
ip_hash;
server 192.168.31.101:8080;
server 192.168.31.101:9090;
}