首页 > 其他 > 详细

Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

时间:2016-07-09 02:11:14      阅读:561      评论:0      收藏:0      [点我收藏+]

?

Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

?

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

蕃薯耀 2016年7月6日 16:12:52 星期三

http://fanshuyao.iteye.com/

?

在Win7实现Tomcat+Nginx 负载均衡配置

?

一、首先需要下载tomcat及nginx,然后解压。

nginx-1.11.2

apache-tomcat-7.0.70-windows-x64.zip

?

然后解压到某个文件夹里面。

tomcat 需要有2个或者2个以上,不然体现不了集群,所有把解压的Tomcat复制一份,重新命名。

我是这样的:

tom-7.0.70-1
tom-7.0.70-2

nginx-1.11.2

?

二、配置Tomcat

?

1、修改Tomcat端口

因为Tomcat使用了端口,如果相同的端口,后启动的tomcat会启动不了,提示端口占用。所以先修改端口。

由于开发也需要一个Tomcat,所以我把集群的2个Tomcat的端口都改了。

一个是:8081,对应tom-7.0.70-1

另一个是8082,对应tom-7.0.70-2

?

配置如下:

D:\tom-7.0.70-1\conf\server.xml

修改关闭端口

<Server port="8015" shutdown="SHUTDOWN">

?

修改请求端口

<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

?

D:\tom-7.0.70-2\conf\server.xml

<Server port="8025" shutdown="SHUTDOWN">

?

<Connector port="8082" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

?

2、修改 jvmRoute

同样是在文件

D:\tom-7.0.70-1\conf\server.xml

D:\tom-7.0.70-2\conf\server.xml

找到Engine?

<Engine name="Catalina" defaultHost="localhost" >

?在后面加上?jvmRoute,如:

D:\tom-7.0.70-1\conf\server.xml配置下如

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

?

D:\tom-7.0.70-2\conf\server.xml配置如下

?

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">

?

?

三、修改nginx配置文件nginx.conf

?

1、找到nginx.conf文件,我的在D:\nginx-1.11.2\conf\nginx.conf

?

2、在http{……}里加上upstream,如下?

?

upstream tomcatCluster{# tomcatCluster和proxy_pass保持一样
	#解决session的问题
	ip_hash;#加上这个,解决Session每次访问页面都不一样,加上就一样了。
        
       #这里是tomcat的地址,weight越大,访问机率越大。
	server 127.0.0.1:8081 weight=1 fail_timeout=5s max_fails=1;
	server 127.0.0.1:8082 weight=2 fail_timeout=5s max_fails=1;
    }

?

server:配置tomcat服务器请求的地址,2台Tomcat服务就配置2个server

?

3、修改location / {……}

默认是这个的:

location / {
            root   html;
            index  index.html index.htm;
        }

?

修改成这样:

location / {
            #root   html;
	    proxy_pass http://tomcatCluster;
            #index  index.html index.htm;
	    proxy_set_header Host $host;
    	    proxy_set_header X-Real-IP $remote_addr;
    	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	    proxy_connect_timeout       1;
    	    proxy_read_timeout          1;
    	    proxy_send_timeout          1; 
        }

?

最简单的配置就是:

location / {
     proxy_pass http://tomcatCluster;
}

?tomcatCluster 对应upstream后的命名。

?

下面的配置可以解决2个Tomcat服务器集群,当一台服务器挂掉(宕机)后,请求变得很慢的问题。

(Tomcat集群一台服务器挂掉后请求变慢解决方案)

proxy_connect_timeout       1;
proxy_read_timeout          1;
proxy_send_timeout          1; 

?

?

四、测试

?

1、在Tomcat部署一个JavaWeb项目,配置一个index.jsp页面,方便查看集群后请求进入的是哪个Tomcat服务器。其实这步可以省略,但有更加好。

?

index.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学习项目</title>
</head>
<body>
	<div style="color: red;font-weight: bold;">study项目。</div>
	<% 
  //HttpSession session = request.getSession(true); 
  System.out.println(session.getId()); 
  out.println("<br> SESSION ID:" + session.getId()+"<br>"); 
%> 
	
</body>
</html>

?

2、分别启动2个Tomcat

?

分别进行D:\tom-7.0.70-1\bin、D:\tom-7.0.70-2\bin目录,点击startup.bat启动Tomcat

?

3、启动Nginx服务器

使用Windows命令行启动

(1)进入D盘:d:

(2)进入D:\nginx-1.11.2目录:cd?nginx-1.11.2

(3)启动服务:start nginx (启动一闪而过,但打开进程管理器能看到是已经启动的)

?

关闭服务的命令:nginx -s stop

重新加载的命令:nginx -s reload,修改配置文件后,可以使用该命令直接加载,不需要重启。

?

4、在浏览器输入地址测试

?

Nginx监听的是80端口,浏览器直接输入:http://localhost/

如果出现Tomcat的页面,就证明成功。


bubuko.com,布布扣
?

由于我在Tomcat部署了项目,直接请求项目:http://localhost/study/

出现:


bubuko.com,布布扣
?


bubuko.com,布布扣
?显示的信息是前面提过的index.jsp页面

其中后缀 jmv1,jvm2对应Tomcat配置的jvmRoute,这样可以清晰看出请求的是哪个Tomcat服务器。

?

另外说明的是:

?

server 127.0.0.1:8081 weight=1 fail_timeout=5s max_fails=1;

?里面的weight表示权重,权重越大,请求机率越大

?

127.0.0.1:8081设置为1,127.0.0.1:8082设置也为1,请求的机率几乎是请求完jvm1,再请求就是jvm2

127.0.0.1:8081设置为1,127.0.0.1:8082设置为2,请求的机率是请求2次8082才会请求一次8081

127.0.0.1:8081设置为1,127.0.0.1:8082设置为5,请求的机率是几乎所有请求都是8082

更多请自己测试吧。

?

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

蕃薯耀 2016年7月6日 16:12:52 星期三

http://fanshuyao.iteye.com/

Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

原文:http://fanshuyao.iteye.com/blog/2309601

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!