Nginx+tomcat实现集群和负载均衡

Tomcat集群方案

window环境Nginx+Tomcat集群配置

nginx负载均衡多台tomcat,session共享,session丢失

Windows下Nginx+Tomcat整合的安装与配置(一)【精】(分类里都值得一看)

Nginx配置文件nginx.conf中文详解(总结)

 

 

start nginx
//启动

nginx -t
//测试nginx配置是否正确

nginx -s stop
//结束nginx进程

nginx -s reload
//重启nginx进程

 

 一. 配置负载均衡

 

自己尝试的例子:

Nginx+tomcat实现集群和负载均衡_第1张图片
 

访问:

Nginx+tomcat实现集群和负载均衡_第2张图片
 

发现请求被根据权重weight分发到两个Tomcat中。其中一个Down掉后也会切换到另一个上。

 

注释掉可使用#号也可使用down:

upstream localhost2 {          
 # server localhost:8080 weight=1;
   server localhost:28080 weight=2;
}
	
upstream localhost2 {          
   server localhost:8080 down;
   server localhost:28080 weight=2;
}

  

QC:

window下权重 weight设置为一样时,切换无法成功,原因未知

 

配置多个:

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }	
	server {
		listen  80;
		server_name t.test.com;
		charset utf-8;
		access_log   logs/hostzs.access.log;
				
		location / {
			proxy_pass http://127.0.0.1:9000;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
		}
	}
	
	server {
		listen  80;
		server_name www.test.com;
		charset utf-8;
		access_log   logs/hostzs.access.log;
		
		location / {
			proxy_pass http://127.0.0.1:8080;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
		}
	}

 

 二. 实现Session共享

 

多个tomcat要一起协同工作有几种办法,可以考虑的方案有以下几个:

 

1. 使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单。但这个方案的效率比较低,在大并发下表现并不好。

2. 利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但如果应用是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。

3. 利用memcached把多个tomcat的session集中管理,前端在利用nginx负载均衡和动静态资源分离,在兼顾系统水平扩展的同时又能保证较高的性能。

 

 

 

 

 

你可能感兴趣的:(tomcat)