参考:http://bee1314.iteye.com/blog/1168732
问题描述:
项目中,Apache通过mod_proxy负载均衡到两个Tomcat8088, Tomcat8089,发现文件共享的问题。比如A用户
很荣幸被分配到Tomcat8088,上传了一个头像,头像被图片被写到Tomcat8088上的某个目录。下次A在登录,这
次很不幸被分配到Tomcat8089上,这时A上传的图片无法访问到,且两个Tomcat在同一个server上。
解决方法:
一个解决办法,找一个公共的目录,两Tomcat中保存对公共目录的链接,如新建/var/images目录,
在Tomcat8088中, 在应用目录下,执行:
ln -s /var/images/ images
同理在Tomcat8089中也采用此方法,这时文件就可以共享了。
启动Tomcat依然发现无法访问图片, 发现是Tomcat不能直接的访问这种虚拟的目录,需要在Tomcat下的
conf/context.xml中的Context节点设置一个参数,如:
修改conf目录下的context.xml文件,将
<!-- The contents of this file will be loaded for each web application --> <Context>
改为:
<!-- The contents of this file will be loaded for each web application --> <Context path="" docBase="" allowLinking="true">