- 浏览: 568355 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (262)
- oracle (43)
- 打包 (3)
- linux (33)
- nginx (20)
- ftp (1)
- tomcat (8)
- mysql (22)
- plsql (4)
- jms (3)
- nosql (2)
- 运维监控 (5)
- 数据采集 (0)
- 测试 (2)
- jvm (5)
- 自动化数据库迁移 (2)
- 密码 (1)
- java代码 (7)
- java多线程,线程安全 (8)
- xml (1)
- spring (6)
- svn (2)
- oracle备份 (1)
- oracle 诊断 (3)
- oracle 归档 (4)
- java 虚拟机(JVM) (2)
- hibernate (5)
- activemq (2)
- http (2)
- linux_shell (9)
- python (3)
- ant (1)
- oracle rac (1)
- php (2)
- js (1)
- mongo (1)
- java 反射 (1)
- jira (1)
- 打包 maven (1)
- zabbix (2)
- lvs+keepalive (1)
- 防火墙 (1)
- memcache (2)
- redis (1)
最新评论
-
di1984HIT:
学习了~~~~
服务器大量TIME_WAIT -
springdata_spring:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
maven常用命令 -
李小斌_2014:
我也遇到了,现在完美解决。
ORA-01422: 实际返回的行数超出请求的行数 -
啸风8023:
...
tomcat启动报错 -
fke153:
这个问题确实很坑人啊,学习了
ORA-01422: 实际返回的行数超出请求的行数
原来写过一篇,为了加深理解,再写一篇
session分为
问题解决
1)ip_hash
不推荐使用:
1/ nginx不是最前端的服务器。
ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash。譬如使用的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址,用这个地址来作分流是肯定错乱的。
2/ nginx的后端还有其它方式的负载均衡。
假如nginx后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端的请求肯定不能定位到同一台session应用服务器上。
3/ 多个外网出口。
很多公司上网有多个出口,多个ip地址,用户访问互联网时候自动切换ip。而且这种情况不在少数。使用 ip_hash 的话对这种情况的用户无效,无法将某个用户绑定在固定的tomcat上 。
使用:
2)nginx_upstream_jvm_route(nginx扩展,推荐使用)
nginx_upstream_jvm_route 是一个nginx的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。
简单来说,它是基于cookie中的JSESSIONID来决定将请求发送给后端的哪个server,nginx_upstream_jvm_route会在用户第一次请求后端server时,将响应的server标识绑定到cookie中的JSESSIONID中,从而当用户发起下一次请求时,nginx会根据JSESSIONID来决定由哪个后端server来处理。
1/ nginx_upstream_jvm_route安装
下载地址(svn):http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/
假设nginx_upstream_jvm_route下载后的路径为/usr/local/nginx_upstream_jvm_route,
(1)进入nginx源码路径
patch -p0 < /usr/local/nginx_upstream_jvm_route/jvm_route.patch
(2)./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.33 --add-module=/usr/local/nginx_upstream_jvm_route
(3)make & make install
修改tomcat配置server.xml
具体配置参考
[url]
http://hanqunfeng.iteye.com/blog/1920994
[/url]
session分为
session replication 策略是复制会话,即一个用户访问了一次就把session复制到所有的服务器或这一部分服务器。 这样的好处是如果正访问的服务器down了用户可以自动被转到别的服务器session不丢失。缺点当然是效率低。 session sticky策略则是不复制,一个用户访问了一次后,同一个session周期内,所有的请求都定向到这个服务器,down了session就丢了。
问题解决
1)ip_hash
upstream backend { server 172.16.3.10:8080 ; server 172.16.3.11:9090 ; ip_hash; }
不推荐使用:
1/ nginx不是最前端的服务器。
ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash。譬如使用的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址,用这个地址来作分流是肯定错乱的。
2/ nginx的后端还有其它方式的负载均衡。
假如nginx后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端的请求肯定不能定位到同一台session应用服务器上。
3/ 多个外网出口。
很多公司上网有多个出口,多个ip地址,用户访问互联网时候自动切换ip。而且这种情况不在少数。使用 ip_hash 的话对这种情况的用户无效,无法将某个用户绑定在固定的tomcat上 。
使用:
2)nginx_upstream_jvm_route(nginx扩展,推荐使用)
nginx_upstream_jvm_route 是一个nginx的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。
简单来说,它是基于cookie中的JSESSIONID来决定将请求发送给后端的哪个server,nginx_upstream_jvm_route会在用户第一次请求后端server时,将响应的server标识绑定到cookie中的JSESSIONID中,从而当用户发起下一次请求时,nginx会根据JSESSIONID来决定由哪个后端server来处理。
1/ nginx_upstream_jvm_route安装
下载地址(svn):http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/
假设nginx_upstream_jvm_route下载后的路径为/usr/local/nginx_upstream_jvm_route,
(1)进入nginx源码路径
patch -p0 < /usr/local/nginx_upstream_jvm_route/jvm_route.patch
(2)./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.33 --add-module=/usr/local/nginx_upstream_jvm_route
(3)make & make install
upstream tomcats_jvm_route { # ip_hash; server 192.168.33.10:8090 srun_id=tomcat01; server 192.168.33.11:8090 srun_id=tomcat02; jvm_route $cookie_JSESSIONID|sessionid reverse; }
修改tomcat配置server.xml
将 <Engine name="Catalina" defaultHost="localhost" > 修改为: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat01">
具体配置参考
[url]
http://hanqunfeng.iteye.com/blog/1920994
[/url]
发表评论
-
nginx反向代理做cache配置
2016-04-11 10:53 1336本文抄自 [url] http://blog.sina.com ... -
nginx随机启动
2016-03-28 14:03 627#!/bin/bash # Tengine Startu ... -
据说这样并发可以到十万
2016-02-18 22:52 841一、一般来说nginx 配置文件中对优化比较有作用的为以下 ... -
502 upstream sent too big header while reading response header from upstream
2016-01-29 10:39 1434错误502 upstream sent too big h ... -
nginx用户认证配置( Basic HTTP authentication)
2015-11-26 11:49 886printf "admin:$(openssl ... -
nginx的upstream目前支持5种方式的分配
2015-09-19 00:30 844nginx的upstream目前支 ... -
nginx.conf 详解
2015-08-19 14:12 739#定义Nginx运行的用户 ... -
upstream prematurely closed connection while reading response header from upstre
2014-12-29 14:07 14938请求对方用nginx做了代理:但是error.log报 ... -
nginx concat 模块
2014-11-13 11:50 633mod_concat模块由淘宝开发,目前已经包含在teng ... -
Nginx添加模块(非覆盖安装)
2014-10-24 10:55 2364来源 http://www.linuxidc.com/ ... -
nginx 长连接
2014-07-31 14:23 8957出处: http://zhangxugg-163-com.it ... -
linux_nginx
2014-05-22 16:29 667#以下是一些反向代理的配置可删除. ... -
nginx安装
2012-05-15 14:47 943wget ftp://ftp.csx.cam.ac.uk/ ... -
nginx日志分割
2012-04-05 09:39 1121脚本如下 #!/bin/bash logs_path=&q ... -
ngnix日志解析
2012-03-31 17:05 5904nginx 日志分析 # log_format ... -
nginx负载均衡设置
2011-11-24 11:03 1966nginx 的 upstream目前支持 4 种方式的分配 ... -
nginx安装重启脚本
2011-11-15 14:17 1017该文章来自http://rq2-79.iteye.com/bl ... -
nginx配置
2011-10-26 17:49 1750#user nobody; worker_proces ... -
Nginx+tomcat负载均衡session问题解决
2011-09-01 18:46 3871文章来源:http://hi.baidu. ...
相关推荐
【Nginx Tomcat集群与Session复制】 在高并发、高可用的Web应用环境中,使用Nginx作为负载均衡器,结合Tomcat集群是常见的架构选择。为了保证用户体验的连续性,Session复制技术用于在多个Tomcat实例之间共享用户...
Nginx Tomcat 集群的Session 复制,解决了,集群情况下的session复制问题。
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
**标题:Redis+nginx集群部署** **描述:**在本实践中,我们将结合Tomcat应用服务器、Nginx反向代理服务器以及Redis作为会话存储来建立一个高可用、负载均衡的Web集群。Nginx负责将用户请求分发到各个Tomcat实例,...
标题 "Nginx+Tomcat+Memcached集群Session共享" 描述了在分布式环境中如何通过Nginx反向代理服务器、Tomcat应用服务器集群以及Memcached缓存系统来实现Session的共享。这是一个常见的高可用性和负载均衡解决方案。...
Redis + Tomcat + Nginx 集群实现 Session 共享
此外,Tomcat可以通过复制session数据来保持会话的一致性,防止用户在服务器间切换时丢失状态。 在Linux环境中,安装和配置这些组件通常涉及以下步骤: 1. 安装必备软件包:如`yum install -y pcre-devel zlib-...
在本文中,我们将深入探讨如何设置一个通过测试的Nginx集群,它利用了轮询策略的session复制和共享,以实现高效且稳定的负载均衡。 首先,Nginx是一个强大的反向代理服务器和HTTP缓存服务器,广泛用于处理静态内容...
这里我们讨论的主题是如何通过Nginx、Tomcat和Memcached来实现集群环境下的session共享。Nginx作为反向代理服务器,负责负载均衡,Tomcat作为应用服务器运行Java Web应用程序,而Memcached则作为分布式内存缓存系统...
为解决这个问题,我们可以利用Redis作为中央session存储,实现Nginx和Tomcat集群间的session共享。 首先,让我们理解Nginx、Tomcat和Redis的角色: 1. Nginx:作为前端反向代理服务器,负责接收用户的请求,并根据...
为了实现Session粘滞(Sticky Sessions),我们可以配置Nginx的`upstream`模块,使其基于Session ID将请求路由到处理该Session的特定服务器,从而避免频繁在Redis中查找和复制Session,提高性能。 在实际操作中,...
nginx,tomcat集群,session共享,基于memcache 包含nginx配置,tomcat配置,以及tomcat所需要的jar 不包含nginx,tomcat,jdk,memcache的安装
### JBoss集群配置的Session复制详解 在分布式计算环境中,JBoss AS(Application Server)作为一款流行的开源应用服务器,常被用于构建高可用性、高并发的Java企业级应用程序。在这样的场景下,如何实现Session的...
【Nginx集群文档】 ...Nginx集群旨在提高系统的可...综上所述,构建Nginx集群需要综合考虑高可用性、负载均衡策略、session一致性以及监控与故障恢复机制。通过深入学习和实践,可以有效地提升Web服务的稳定性和效率。
2. **配置Tomcat**:修改Tomcat的`context.xml`文件,引入一个session复制的实现,比如`JedisCluster`(Redis客户端)。设置session的存储策略为`org.apache.catalina.session.ManagerBase`,并配置Redis连接参数。 ...
通过本篇文档,读者应该能够获得构建基于Nginx+Tomcat+MSM的集群Session共享环境的知识,并能应用这些知识进行实际操作和测试。需要注意的是,在实际操作中,环境配置细节会根据具体需求和软件版本有所不同,因此在...
综上所述,"tomcat7 + redis + nginx 实现session共享的jar包"是通过利用Redis作为中央session存储,结合Nginx的负载均衡能力,解决了分布式环境下的session一致性问题。这个解决方案既保证了用户体验的连续性,也...
总之,Windows + Nginx + Memcached + Tomcat 集群session共享方案是一个高效且可靠的架构,它能提高系统的可用性,保证用户会话的连续性,是大规模Web应用常见的部署模式。然而,实际部署时,还需要考虑安全性、...
`memcachedNodes`指定了Memcached服务器的地址和端口,`sticky`表示是否启用会话粘滞性,`sessionBackupAsync`和`lockingMode`则关乎Session的同步策略,`requestUriIgnorePattern`可以忽略某些URL进行Session复制,...