使用nginx搭建tomcat分布式集群


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共享(一)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM