我的阿里云ECS是这么几台:
1)、一台安装了tomcat-a,部署项目;
2)、一台安装了tomcat-b,部署项目;
3)、一台安装了memcached,作为缓存服务。
以上3台端口、安全组均已开通,互相访问均无问题。
##################################
第一次测试:
1、两个tomcat配置都检查了两遍是OK的,启动之后访问页面登录之后也能有session进入到memcached中,tomcat是OK的;
2、memcached能进来值,说明服务器之间通信是OK的;
3、使用MSM管理session的那段配置,确定是no-skity的,本身配置就那么点照搬来改的,也是OK的。
但是,其中一台tomcat登录后,另一台怎么刷新也还是在登录页,直接访问主页也会被拦截器拦截下来因为没有session,看memcached里面有第一台的session;然后第二台我直接登录后,memcached又有了第二个session。
反正就是这俩tomcat没有共享session,memcached也有值,配置也是按照老师的配置来的,不知道还有哪里有问题。
老师有空帮忙看看好吗?困扰我一天多了。
-------------------------------------------------------
第二次测试:
然后我用老师那个test小工程打包部署到服务器上去测试了一下,发现不管怎么刷新页面都是显示“session没有值”,然后看memcached服务器里面每当我刷新一次页面,就会多一个session值。
这是MSM没有配置成功吧,可我配置检查了下,是按照老师的步骤来的啊。o(╥﹏╥)o
-------------------------------------------------------
第三次测试:
2018-7-22 19:00记录:
老师,我又做了一下测试,直接把项目打包部署在本地自己电脑的两个不同端口的tomcat上,启动后访问,发现可以实现session共享,连接的memcached服务器是阿里云的,观察session没问题。
但是我把项目部署到阿里云的两台机器tomcat上之后,访问发现就不行了,一台登录往memcached塞入了session,但是另一台刷新还是拿不到session,打印出来是空的。
这到底是为什么呢?
-------------------------------------------------------
第四次测试:
2018-7-23 01:17记录:
第四次测试,我把两个tomcat全部都放到一台阿里云ECS上了,然后tomcat改成不同端口,部署项目启动,验证,发现session共享成功!
至此,我能确定一个问题了,在同一服务器上不同端口没问题,但是不同服务器就不行,我猜测的可能原因:
1、阿里云ECS还有什么额外的限制,我没有开通某个策略之类的。(目前安全组策略都开通了,服务器上的防火墙也都开了相应的端口。)
2、跨域问题,因为服务器ip不同,所以导致session无法共享,但是memcahed作为第三方缓存服务不就是解决这个问题的吗?
以上,是我这两天在阿里云ECS上部署项目测试MSM的测试过程,希望有遇到过的或者有思路的同学能给点建议,也希望老师百忙之余能帮忙一起看下这个问题。