使用nginx搭建tomcat分布式集群_80端口

1.下载nginx做负载均衡

下载tomcat做集群,下载

下载memcached做session共享

2.将tomcat文件夹复制多份

修改每个端口号在conf下的server.xml文件夹中找到3个port修改端口号不可重复

<Server port="1005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->


<!-- 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写成一个方法,下面直接访问这里的方法名字

接下来

使用nginx搭建tomcat分布式集群_nginx_02

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启动

或者直接点击

使用nginx搭建tomcat分布式集群_80端口_03

如果项目已经启动了,修改了conf文件则输入nginx -s reload重新加载conf

启动自己的多个tomcat,在bin目录doc命令输入start startup.bat或者直接点击

使用nginx搭建tomcat分布式集群_80端口_04

(启动成功会保留dos命令,一闪而过就是失败,可以在最后追加pause让命令行停止查看是否环境有问题,没问题的话就把call "%EXECUTABLE%" start %CMD_LINE_ARGS%里面的start更改为run运行根据提示查看错误信息,没有问题后把这两处改回去)--来自

5.验证

输入localhost(相当于访问了localhost:80,80端口电脑默认开启,可以不用指定)会访问到tomcat的页面,这里没有用Tomcat的端口访问了tomcat,证明成功

使用nginx搭建tomcat分布式集群_tomcat_05

 

 

在多台tomcat上都布置同一种项目,打包项目war包放入webspps下面让项目自动跳转index(在WEB-INF指定即可),可以更改每个index的页面效果,访问localhost/(项目名字),会跳到本项目的index页面,验证如果不同即是成功


最终效果

使用nginx搭建tomcat分布式集群_tomcat_06

 

 用tomcat效果

使用nginx搭建tomcat分布式集群_tomcat_07

 



注意

配置了多台tomcat,如果启动了每台都要布置这个项目,如果有一个没有布置可能会出错(页面的css,js等等都是从项目开始的web-inf下面的位置,也就是和项目关联了,用nginx访问的时候会轮流提供,比如找tomcat1拿了页面,找tomcat2拿css,而tomcat2没有布置项目,就找不到css,导致页面混乱







使用nginx搭建tomcat分布式集群_nginx_08