下载nginx和tomcat,笔者这里是在windows环境
一.nginx搭建tomcat集群
1.nginx直接双击nginx.exe运行,同时打开浏览器输入localhost,显示如下界面即表示安装成功。
2.复制tomcat,一个命名为tomcat1,另一个为tomcat2.并为两个tomcat分别配置环境变量
然后修改tomcat配置文件,打开conf下的server.xml。修改如下四处配置,确保两个tomcat之间端口不会冲突。
3.进入tomcat下webapps的ROOT目录中index.jsp。
<h1>${pageContext.servletContext.serverInfo} tomcat1</h1>
将tomcat1,tomcat2分别添加在此代码后面(方便后面查看tomcat1和tomcat2的运行情况)。
4.运行tomcat1,tomcat2.查看两个服务器是否不冲突正常运行
5.打开ginx中conf中nginx.conf配置文件,并添加如下两处代码
注:weight代表服务器的权重,即承担的服务次数比重。
6.运行cmd,将目录切换到nginx下,nginx -s reload 命令重启nginx服务,在浏览器中输入localhost,此时可能显示如下错误页面:
400 Bad Request是一种HTTP错误状态码。HTTP/1.1对400 Bad Request的定义主要是:1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。
解决此问题办法为:在nginx的nginx.conf配置文件中添加一段代码,如下图:
7.重启nginx,刷新页面,结果如图:
此时,nginx搭建tomcat的任务就算完成了。
二.实现服务器之间的数据共享
1.打开eclipse,创建一个web项目,在WebRoot下创建一个index.jsp页面。添加如下代码
2.在d盘(其他盘也一样)创建一个文件夹myApp.找到web项目源码,将WebRoot下所有内容拷贝到myApp中。
3.分别在在tomcat的conf/Catalina/localhost下创建ROOT.xml(ROOT.xml为tomcat服务器的默认入口),并在其中添加如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\myApp"/>
4.重启tomcat,nginx。刷新页面。显示如下
可以看到,此时tomcat之间并没有实现数据共享。
5.此时需在nginx的配置文件nginx.conf中添加一行代码即可实现共享,即
再次刷新页面,发现session.id不再变化,即实现了服务器间的数据共享。