困扰几天的Apahce tomcat 实现负载均衡和Session 共享今天终于在本机实现了。期间参考了大量的网上资料,但只实现了Apahce的负载均衡,但就是实现不了Session 共享。下面就先说下Apahce的负载均衡吧,从网上看有三种方式ajp,http,mod_jk。我在这里只说下我用的ajp方式,其他方法网上都能查到。环境:我用的是中标操作系统,内置的httpd服务,下载了tomcat7,复制一份命名为tomcat70。即一个 apache作负载均衡器,两个tomcat 实现集群的搭配。http默认安装位置:/etc/httpd,修改conf/httpd.conf文件,主要加入反向代理方面的内容:ProxyRequests OffBalancerMember ajp://127.0.0.1:8009 route=jvm1BalancerMember ajp://127.0.0.1:8010 route=jvm2 打开VirtualHost*80的注释,加入下面内容:ServerName 127.0.0.1 ServerAlias localhost ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://loadbalancer/ 我的两个tomcat的ajp端口分别是 8009和8010。route的jvm1,jvm2分别与tomcat中的配置文件一致,下面就介绍两个tomcat的配置。tomcat7的配置文件如下:tomcat70的配置文件如下: 大家可以从上面看出两个文件基本一致,主要是几个端口不同而已。刚开始我也基本配置到如此,但是测试总是不行session 还是变来变去,也不知道看了网上多少篇文章,感觉都一模一样,但还是解决不了,我又仔细对比,终于在一篇文章中看到了Membership 中的一个bind属性没设置,加上这个属性居然好了。不明白为啥?我又试着去去掉,发现去掉就不行,有人知道吗?不过总算弄出来了。我走了很多弯路,希望能给遇到同样问题的人带来点帮助仅次而已。在配置过程中还遇到tomcat的一个如下错误,刚开始怎么都知道什么原因,看了很多解决方法,都没解决,后来查看了日志,发现不能访问Catalina这个文件夹,才明白了是权限问题,我总结在linux下遇到问题,应该首先想到权限问题org.apache.jasper.JasperException: java.lang.NullPointerException 参考文章:http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html