`
jjjssh
  • 浏览: 77750 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

nginx+redis实现负载均衡和session共享

阅读更多
nginx+redis实现session共享和负载均衡

最近想实现一个通过nginx做负载,然后共享session的东西
需要到的资源
nginx-1.13.4
apache-tomcat-7.0.63
commons-pool2-2.3.jar
commons-pool-1.2.jar
jedis-2.1.0.jar
tomcat-juli-8.0.23.jar
tomcat-redis-session-manager-1.2-tomcat-7.jar

首先是nginx的配置
upstream cluster_redis {    
        server localhost:8280 max_fails=1 fail_timeout=60s;    
        server localhost:8380 max_fails=1 fail_timeout=60s;    

    }    
    server { 
       listen 8180;    
       server_name localhost;    
       location / {    
        proxy_pass http://cluster_redis;
		proxy_set_header Host $host:$server_port;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Scheme $scheme;
		proxy_connect_timeout 10;
		proxy_read_timeout 10;
		proxy_send_timeout 10;
       }    
    }

刚开始nginx一直报80端口冲突,按照网上的方法,怎么试怎么不行,最后放弃了,把80端口改成其他的了,我改成了8080,就能启动nginx了

再者是tomcat的配置
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />    
	<Manager className="com.radiadesign.catalina.session.RedisSessionManager"    
             host="127.0.0.1"    
             port="6379"    
             database="0"    
			 password="123456"
             maxInactiveInterval="60" />

然后把上面的jar包放进tomcat的lib文件夹下,这里的redis配置和redis的搭建这里就详写了,这个很简单的,下个redis的安装包,安装就行。

然后在tomcat里面的ROOT底下新建一个index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  

<%    
    String sessionId=session.getId(); //获取session ID号
    String userName=request.getParameter("userName");
	String password=request.getParameter("password");
	String logout=request.getParameter("logout");
	
    if(userName!=null&&!"".equalsIgnoreCase(userName.trim())){
		System.out.println("userName:"+userName);
        session.setAttribute("userName", userName);
    }
	
	if(logout!=null){
		session.setAttribute("userName", "");
		System.out.println("logout....");
	}
	System.out.println("tomcat 1");
	out.println("tomcat 1");
%>
<!DOCTYPE html>  
<html>  
<head>  
<title>test</title>  
<script src="jquery-1.8.3.min.js"></script>
<script>
function logout11(){
	$.ajax({
		type:"POST",
		url:"index.jsp",
		dataType:"json",
		data:{logout:"logout"},
		success:function(result) {
			location.href="index.jsp";
		},
		error:function(result){
			
		}
	});
}

function login(){
	var userName=$("#userName").val();
	
	$.ajax({
		type:"POST",
		url:"index.jsp",
		dataType:"json",
		data:{userName:userName},
		success:function(result) {
			alert(1111);
			location.href="index.jsp";
		},
		error:function(result){
			
		}
	});
}
</script>
</head>
<body>  
<div>
current sessionID:<%=sessionId %>
</div>
<%if(session.getAttribute("userName")!=null&&!"".equals((String)session.getAttribute("userName"))){%>
<div>
userName:<%=(String)session.getAttribute("userName")%>
<p>
<form action="index.jsp" method="post">
	<input name="logout" type="hidden">
	<input type="button" value="logout" onclick="logout11()"> 
</form>
</p>
</div>
<%}else {%>
<div>
	<form action="index.jsp" method="post">
		<table>
			<tr>
				<td>userName:</td>
				<td><input id="userName" name="userName" type="text" /></td>
			</tr>
			<tr>
				<td>password:</td>
				<td><input name="password" type="text" /></td>
			</tr>
		</table>
		<p>
			<input type="button" value="login" onclick="login()"> 
		</p>
	</form>
</div>
<%}%>
</body>  
</html>

jquery js自己下载替换。
然后,复制tomcat,改端口,此时我的两个tomcat的端口分别是8280,8380
好了,启动nginx和两个tomcat,访问http://localhost:8180/index.jsp






  • 大小: 16.9 KB
  • 大小: 18.8 KB
分享到:
评论

相关推荐

    nginx+redis负载均衡、session共享

    总的来说,"nginx+redis负载均衡、session共享"的架构提高了Web服务的可扩展性和可靠性,确保了用户在多台服务器间的会话一致性。在实际部署时,还需要考虑如容错处理、性能监控、安全策略等更多细节,以构建更健壮...

    Nginx+Tomcat+Redis实现负载均衡过程中session所需架包

    综上所述,通过Nginx实现负载均衡,利用Tomcat处理业务逻辑,结合Redis进行session共享,可以在不牺牲用户体验的前提下提高系统的可扩展性和可靠性。这个过程中涉及的关键技术包括Nginx的反向代理和负载均衡配置、...

    nginx+tomcat+redis完成session共享

    这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...

    ssm+redis+nginx实现session共享和负载均衡

    接下来我们将深入探讨如何利用这三者来实现session共享和负载均衡。 1. **SSM框架中的Session管理** 在SSM框架中,通常会将session存储在本地服务器的内存中,但这种方式在多服务器部署时会导致会话不一致,用户在...

    nginx+tomcat7负载均衡+redis缓存session

    这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于高效地存储和共享用户会话(session)数据。下面我们将详细探讨这些技术组件及其相互作用。 **Nginx** Nginx...

    nginx+redis实现session共享

    通过Nginx的负载均衡功能,可以实现集群中的服务器之间的请求分发,从而提高系统的可用性和可靠性。 接着,Redis作为一个高速缓存数据库,特别适合用于存储临时但频繁访问的数据,如session。当用户在任一应用中...

    Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享

    Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享 Nginx、Tomcat和Redis是三大热门的开源软件,分别...通过使用Nginx、Tomcat和Redis,我们可以实现负载均衡、资源分离和session共享,提高网站的性能和可用性。

    linux下Tomcat+nginx+redis负载均衡配置

    Linux 下 Tomcat+nginx+redis 负载均衡配置是指在 Linux 操作系统下,使用 Tomcat、nginx 和 Redis 实现负载均衡和资源共享的配置方法。该配置主要通过 nginx 实现负载均衡,Tomcat 提供 Web 服务,Redis 提供 ...

    Nginx+tomcat 实现负载均衡session共享demo

    总结,通过`Nginx`实现`Tomcat`集群的负载均衡和`session`共享,不仅可以提高服务的可用性和性能,还能为用户提供一致性的体验。在这个过程中,配置`Nginx`的负载均衡策略和选择合适的`session`共享方案是关键。希望...

    Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享

    超详细Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享搭建说明,按文档步骤可轻松搭建并实现session共享

    nginx+tomcat实现负载均衡,共享session的两种方式

    nginx+tomcat实现负载均衡,共享session的两种方式: 1.使用Redis共享session 2.使用tomcat的组播功能。

    nginx+tomcat6+redis实现session共享Jar文件

    "nginx+tomcat6+redis实现session共享"是一个常见的解决方案,旨在提高系统的可扩展性和高可用性。这个配置允许多个Tomcat服务器之间共享用户session,避免了用户在切换服务器时需要重新登录的问题。下面将详细介绍...

    nginx+tomcat+redis负载均衡及session共享

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+tomcat+redis负载均衡及session共享"的架构就是一个常见的解决方案。这个架构结合了三个强大的工具:Nginx作为反向代理和负载均衡器,Tomcat作为Java...

    真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session

    真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步问题等等,直接把 Web 应用的 war 包,放进Tomcat的 webapps ...

    nginx+redis负载均衡和session粘滞

    本教程将探讨如何在Windows环境中,利用Nginx作为反向代理服务器,Redis作为session存储,与Tomcat应用服务器配合,实现负载均衡和session粘滞。 **负载均衡** 负载均衡是一种技术,用于分散网络流量到多个服务器...

    Nginx+tomcat+redis

    - **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的Tomcat实例,从而实现负载均衡,提高系统的可用性和响应速度。 - **静态资源处理**:Nginx对静态文件(如CSS、JavaScript、...

    redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享

    **Nginx**:Nginx是一款高性能的HTTP和反向代理服务器,可以作为负载均衡器,将用户请求分发到多个后端服务器。在session共享的场景下,Nginx可以配置为将带有session ID的请求路由到正确处理该session的服务器。 *...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    标题 "Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包" 涉及的是在使用Nginx做负载均衡时,如何通过集成Redis来实现Tomcat7服务器之间的Session共享,从而确保用户在不同服务器之间切换时仍然能够保持...

    NGINX + TOMCAT 6 + REDIS 实现负载均衡 session会话同步

    本篇文章将详细探讨如何使用NGINX作为负载均衡器,结合TOMCAT 6应用服务器和REDIS作为session会话存储来实现负载均衡下的session会话同步。 首先,我们需要理解负载均衡的基本概念。负载均衡是指在多台服务器之间...

Global site tag (gtag.js) - Google Analytics