1.tomcat的准备工作:
准备两个tomcat服务,这里我们在一个电脑上启动两个tomcat服务,所以需要更改其中一个tomcat的端口号才能同时运行。具体步骤如下:
1)步骤一:下载Tomcat地址为http://tomcat.apache.org/download-70.cgi
2)步骤二:安装和配置Tomcat:
直接将下载后的Tomcat解压在本地磁盘:解压两个分别命名为tomcat1和tomcat2。解压完成后需要将tomcat的端口改变,我们这里只需要更改其中一个tomcat的端口,改的是tomcat2的端口。打开tomcat2的conf下的server.xml,将Server、Connector中的port属性的值分别改动。并将Engine标签中的jvmRoute的值分别改为tomcat1和tomcat2,改完之后是如下效果。
此时,同时启动两个tomcat进行访问,如果是可以正常访问的,说明以上配置是没有问题的就可以进行下面的操作了。
2. Nginx的安装和部署
将nginx-1.8.0.zip解压包某个盘符下运行,目录结构如下:
双击nginx.exe即可运行,打开浏览器http://localhost:80显示如下页面:
至此说明Nginx安装成功。如果需要关闭Nginx,则需要找到Nginx的对应线程,结束掉对应的线程即可。
本帖隐藏的内容
3. Nginx的负载均衡的配置
打开C:\nginx-1.8.0\conf\nginx.conf这个文件。在upstream server_lb中配置这两个服务器。然后在server中配置server_name为www.taoge.com。(这个网站地址需要在本地hosts文件中配置并指定ip地址为127.0.0.1)。在location中配置反向代理,具体配置如下:
至此,如果我们访问www.taoge.com就可以指向刚才我们启动的两个tomcat的服务,从而分担服务器端的压力。但是这种情况下因为我们访问的是两台tomcat服务器,所以请求的会话数据会被丢失。还需要在多个tomcat中实现session共享。
配置Tomcat的session共享可以有三种解决方案:
第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的。
第二种是利用web容器本身的session共享策略来配置共享。针对于weblogic这种方式还是靠普的。但是针对于tomcat这种方式存在很大的缺陷,主要因为是依靠广播方式来实现的session复制,会浪费很多带宽导致整个网络反映缓慢。官网也建议这种方式最好不要超过4台tomcat,具体的内容可参考/webapps/docs/cluster-howto.html里面有详细的说明。下面是具体的配置过程
第三种是Tomcat集群+redis的Session共享配置方法.
在这里我们以第二种方式为例
4. 配置Tomcat中session的共享
1)修改server.xml文件,最简单的集群配置只需要将节点中注释掉的下面这句取消注释即可:
使用这样方法配置的集群会将Session同步到所在网段上的所有配置了集群属性的实例上。也就是说如果该广播地址下的所有Tomcat实例都会共享Session,那么假如有几个互不相关的集群,就可能造成Session复制浪费,所以为了避免浪费就需要对节点多做点设置了,如下:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
</Channel>
</Cluster>
加了一个Channel,里面包了个Membership,咱们要关注的就是membership的port属性和address属性,不同的集群设置不同的port值或address值,从目前的使用来看,基本上是隔离开了。
2)修改项目的web.xml文件:
web.xml文件的修改很简单:只需要在节点中添加这个节点就可以了。
现在就实现了Tomcat的集群和Session的共享了,我们也完成了tomcat的集群搭建。