nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

---------------------------------------------------

搭建环境(在桌面上即可完成测试)

先准备2个tomcat服务器

解压tomcat压缩包

nginx与tomcat搭建集群,负载均衡

得到

nginx与tomcat搭建集群,负载均衡

把得到的文件夹复制一份然后该一下名字,区别不同的tomcat服务器

nginx与tomcat搭建集群,负载均衡

然后把端口改一下(默认是8080,现在tomcat1服务器端口改为8081,tomcat2服务器端口改为8082 在原有基础上+1 +2 )

nginx与tomcat搭建集群,负载均衡

创建一个web项目

nginx与tomcat搭建集群,负载均衡

里边就一张页面

然后把该项目进行部署(WAR包专门用于项目部署  这次部署到两个服务器上 )

nginx与tomcat搭建集群,负载均衡

next之后,选择打包到桌面

nginx与tomcat搭建集群,负载均衡

然后把该文件夹部署到tomcat的wabapps文件夹下

nginx与tomcat搭建集群,负载均衡

同样tomcat2也是这样

nginx与tomcat搭建集群,负载均衡

然后启动这两个服务器

nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

这个时候刚才部署在tomcat1和tomcat2服务器中的war文件就会自动加压,形成项目目录

nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

客户端访问同一个域名,然后nginx会自动把请求分流到不同服务器上,现在为了区别运行的是不同服务器上的项目,我们把tomcat2中刚才解压生成的项目中index.jsp页面

做一下修改

nginx与tomcat搭建集群,负载均衡

打开,修改为:

nginx与tomcat搭建集群,负载均衡

访问nginx反向代理服务器,该服务器把请求分流到tomcat1服务器或者tomcat2服务器 打印的内容就会不一样

接下来开始集群的搭建

下载nginx

nginx与tomcat搭建集群,负载均衡

解压缩

nginx与tomcat搭建集群,负载均衡

打开(单击nginx.exe即可启动nginx反向代理服务器 默认端口是80)

nginx与tomcat搭建集群,负载均衡

在浏览器中输入localhost即可默认访问该服务器

nginx与tomcat搭建集群,负载均衡

(这就表示服务器启动成功了)

下面进行集群配置

nginx与tomcat搭建集群,负载均衡

对此文件进行配置

nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

这是自己配置的服务器列表,因为现在配置了2个tomcat服务器,所以配置了两个服务器列表,8081,8082就是这两个tomcat服务器的端口号(因为在上面设置了tomcat1以及tomcat2服务器的端口号分别为8081,8082)

nginx与tomcat搭建集群,负载均衡

下面的红色方框中的内容是自己添加的,就是把对应的tomcat服务器集群配置在nginx反向代理服务器中  蓝色圈中的 a对应服务器集群列表的名字

nginx与tomcat搭建集群,负载均衡

启动服务器(tomcat1  tomcat2  以及反向 代理服务器)

nginx与tomcat搭建集群,负载均衡

然后在浏览器中进行访问(jiqun这个名字是在tomcat服务器的wabapps中解压生成的那个目录的名字 其实就是部署在tomcat服务器中的项目名称  只不过这里通过反向代理服务器进行分流来达到访问tomcat服务器中的项目)

输入http://localhost/jiqun/

nginx与tomcat搭建集群,负载均衡

刷新

nginx与tomcat搭建集群,负载均衡

这就在访问地址不变的情况下,把请求分别分发给了不同的tomcat服务器进行了处理(在实际项目中,处理的应该是同一个项目,这里为了演示不同服务器处理请求的效果,所以该修改了项目的页面)。

但是有没有发现一个问题,这是一个客户端的一次回话,所以sessionid的值应该在刷新之后不能改变,确保这是同一个session,但是这里每次刷新之后,sessionid都改变了  说明session没有共享,不是同一个session

解决session共享问题:

nginx与tomcat搭建集群,负载均衡

使用第二种方法解决session共享

第一步:打开tomcat中的配置文件

nginx与tomcat搭建集群,负载均衡

修改

nginx与tomcat搭建集群,负载均衡

把该行的注释去掉,让该代码起作用(tomcat服务器集群列表中的所有服务器对应的配置文件都需要这样改,这里只有两个tomcat服务器,所以这需要该这两个服务器的配置文件)

nginx与tomcat搭建集群,负载均衡

同样对tomcat1也做以上修改

第二步:把tomcat服务器集群列表中的每一个项目中的web.xml都做如下修改

nginx与tomcat搭建集群,负载均衡

nginx与tomcat搭建集群,负载均衡

打开添加<distributable/>节点

nginx与tomcat搭建集群,负载均衡

如下图:

nginx与tomcat搭建集群,负载均衡

同样tomcat2也是如此

重新启动tomcat服务器

在浏览器中运行

nginx与tomcat搭建集群,负载均衡

刷新

nginx与tomcat搭建集群,负载均衡

以上就完成了项目的集群部署,访问同一个网址,通过反向代理服务器nginx,请求到不同的tomcat服务器(负载均衡),运行的是同一个项目,并且session达到共享

集群搭建成功之后,如果需要部署另外一个项目的话,只需要把该项目导出(WAR格式),然后复制到所有tomcat服务器的wabapps文件夹中,重启所有服务器(把反向代理服务器也做一下重启),然后是否需要做相应的修改(第一步已经修改完成,不用动了,第二步 如果在项目中已经添加了distributable属性的话就无需再修改了),最后通过反向代理服务器即可完成项目的访问

-------------------------------------

重启反向代理服务器

nginx与tomcat搭建集群,负载均衡

复制上面的路径,然后在cmd命令行进行重启操作

第一步:进入该路径

nginx与tomcat搭建集群,负载均衡

第二步:输入命令 回车

nginx与tomcat搭建集群,负载均衡

完成重启

上一篇:linux note


下一篇:Windows Store 开发总结——文件操作