1.下载nginx做负载均衡
下载tomcat做集群,下载
下载memcached做session共享
2.将tomcat文件夹复制多份
修改每个端口号在conf下的server.xml文件夹中找到3个port修改端口号不可重复
1 <Server port="1005" shutdown="SHUTDOWN"> 2 <Listener className="org.apache.catalina.startup.VersionLoggerListener"/> 3 <!-- Security listener. Documentation at /docs/config/listeners.html 4 <Listener className="org.apache.catalina.security.SecurityListener" /> 5 -->
<!-- port="28888" tomcat监听端口,随意设置,别太小 -->
<Connector connectionTimeout="20000" port="1080" protocol="HTTP/1.1" redirectPort="8443"/>
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="1009" protocol="AJP/1.3" redirectPort="8443"/>
3.nginx解压
打开conf打开nginx.conf进行配置
在#gzip on这句代码后加上
#gzip on;
upstream nginxDemo {
server 127.0.0.1:1080;
server 127.0.0.1:2080;
}
不要写localhost,会比较慢,冒号后是刚刚配置的多个tomcat的监听端口号,这里相当于配置的多个tomcat写成一个方法,下面直接访问这里的方法名字
接下来
listen是nginx的监听端口号,(就是有人访问80端口就会被nginx发现并且接管,系统默认开启80端口所以访问时可忽略不写:80默认就有)
server——name是服务的名字,我感觉是随便写吧
#access_log logs/host.access.log main;
location / {
proxy_pass http://nginxDemo;
}
#error_page 404 /404.html;
location是拦截到访问80端口的处理方法,原来的内容是访问静态网页,现在删除掉他们使用proxy_pass http://nginxDemo;这句话,红色的就是上面多个tomcat那个方法的方法名字,也就是说有人访问80端口就会被这里转化为访问tomcat集群
4.启动nginx,启动dos环境,进入到nginx目录,输入start nginx启动
或者直接点击
如果项目已经启动了,修改了conf文件则输入nginx -s reload重新加载conf
启动自己的多个tomcat,在bin目录doc命令输入start startup.bat或者直接点击
(启动成功会保留dos命令,一闪而过就是失败,可以在最后追加pause让命令行停止查看是否环境有问题,没问题的话就把call "%EXECUTABLE%" start %CMD_LINE_ARGS%里面的start更改为run运行根据提示查看错误信息,没有问题后把这两处改回去)--来自
5.验证
输入localhost(相当于访问了localhost:80,80端口电脑默认开启,可以不用指定)会访问到tomcat的页面,这里没有用Tomcat的端口访问了tomcat,证明成功
在多台tomcat上都布置同一种项目,打包项目war包放入webspps下面让项目自动跳转index(在WEB-INF指定即可),可以更改每个index的页面效果,访问localhost/(项目名字),会跳到本项目的index页面,验证如果不同即是成功
最终效果
用tomcat效果
注意
配置了多台tomcat,如果启动了每台都要布置这个项目,如果有一个没有布置可能会出错(页面的css,js等等都是从项目开始的web-inf下面的位置,也就是和项目关联了,用nginx访问的时候会轮流提供,比如找tomcat1拿了页面,找tomcat2拿css,而tomcat2没有布置项目,就找不到css,导致页面混乱)
参考
jsp 获取服务器ip 以及端口号
使用nginx加载多个tomcat实现session共享(负载均衡)
tomcat结合nginx使用小结
Nginx+Tomcat的配合使用
Linux下Nginx负载均衡多个tomcat配置
使用war包部署在Tomcat中运行
tomcat+nginx+redis实现均衡负载、session共享(一)