企业部分实战---tomcat+nginx+memcache实现对tomcat服务的负载均衡和session共享
一、什么是tomcat?
1.实验环境搭建:
两台主机主机名分别为server7和 server8 , ip地址分别为172.25.12.7和172.25.12.8
2.什么是tomcat?
由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器(服务器),也是当前应用最广的JavaWeb服务器(免费)。
3.tomcat7.0.37 源码安装
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/lnmp
rpm -ivh jdk-8u121-linux-x64.rpm
cd /usr/local/lnmp
ln -s apache-tomcat-7.0.37/ tomcat
bin/startup.sh
二、nginx + tomcat
由于tomcat 开启的端口是8080,而一般浏览器都是默认使用的80端口,为了使用更加方便,可以通过nginx的反向代理来实现更加方便的访问tomcat.
实现步骤:
1.修改nginx配置文件
vim /usr/local/lnmp/nginx/conf/nginx.conf
在宿主机上做好解析,之后测试
三、nginx + tomcat + memcache
作用: 实现负载均衡和session共享
实现步骤
1.修改nginx 服务的主配置文件,
2.将jar包安装到tomcat 的解压目录下的lib目录中
3.修改tomcat 解压目录中conf/context.xml
代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.12.7:11211,n2:172.25.12.8:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
4.用解压目录bin 目录下的startup.sh 和 shutdown.sh 完成重启,将整个tomcat解压后的整个目录发送给server8主机。在server8修改tomcat目录中config目录下的context.xml文件
注: 因为两边都需要用到memcached 所以两台主机都必须下载memcached服务并且开启
测试:
1.将该test.jsp文件放入到两台主机的tomcat解压目录下的 webapps/ROOT目录下
2.访问测试
此时访问的是server7的tomcat 中的test.jsp,采用的是交叉方式存储数据,所以当存入数据时,应该在主机server7上内存中,测试:
当down 掉当前正在响应的 tomcat 实例,nginx 会自动把用户的请求调度到另一个 tomcat 实例上,同时 session 也没有丢掉。