<转自http://linuxgp.blog.51cto.com/1708668/481584>
目前关于nginx做proxy的会话保持功能实现有2种方法:
一、ip_hash
可以实现回话保持,但是需要加max_fails=0;防止当机后服务不能跳转的问题。
upstream cluster {
ip_hash;
server xxx.xxx.xxx.xxx:80 max_fails=0;
}
经过实地测试,发现max_fails=0,不用添加。这个设置的意思是关闭了nginx的健康检查。在不关闭的情况下,也就是默认取1时,某节点宕机,服务自动跳转到其他节点,完全没有影响。
二、第三方模块 nginx_upstream_jvm_route
1.For resin
upstream backend {
server 192.168.0.100 srun_id=a;
server 192.168.0.101 srun_id=b;
server 192.168.0.102 srun_id=c;
server 192.168.0.103 srun_id=d;
jvm_route $cookie_JSESSIONID|sessionid;
}
2.For tomcat
upstream backend {
server 192.168.0.100 srun_id=a;
server 192.168.0.101 srun_id=b;
server 192.168.0.102 srun_id=c;
server 192.168.0.103 srun_id=d;
jvm_route $cookie_JSESSIONID|sessionid reverse;
}
第二种方法从网上搜索文档很多。
分享到:
相关推荐
本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台服务器之间切换时仍能保持其会话状态。 首先,我们要理解会话保持的重要性。在分布式系统中,用户可能与集群中的任何一台...
nginx反向代理负载均衡和session会话保持详细配置,附带必须软件包,nginx-sticky-module-1.1,nginx_upstream1.1,pcre-8.35, nginx-1.6.0, nginx_upstream_check_module-master
nginx容器内安装目录: /home/nginx/nginx_stream 免重新编译,解决1.24.0 编译sticky 失败问题,启动即用
但问题来了,nginx在会话保持这方面比较弱,用ip_hash做会话保持有很大的缺陷,它是通过客户端ip来实现,根据访问ip的hash结果分配请求到后端的app服务器,负载不会很均匀。之前在一个小项目前中使用过这种方法,...
- **会话保持配置**:通过`nginx-sticky`模块实现会话保持功能,确保客户端在一个会话周期内的所有请求都被路由到同一个后端服务器。 - **安装模块**:首先下载并解压`nginx-sticky`模块至指定路径,然后在Nginx的...
一、ip_hash: ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。 ip_hash语法: upstream backend { ip_hash; ... 来自同一局域网的客户端会被转发到
memcached是一个用C语言开发的分布式的缓存,内部基于类似hashMap的结构。它的优点是协议简单,内置内存存储,并且他的分布式算法是在客户端完成的,不需要服务器端进行通信,我们当时在做项目的时候因为考虑到项目...
Nginx 的 sticky 模块便为此目的而设计,它允许我们实现基于特定条件的会话保持策略。 Nginx Sticky Module Ng 是 Nginx 官方 sticky 模块的一个增强版本,提供了更灵活的配置选项和更好的性能。版本 1.2.6 是该...
`nginx` 是一款高性能的反向代理服务器,常用于实现负载均衡,而 `Eureka` 是 Netflix 提供的一个服务注册与发现组件,是微服务架构中的关键组件。本实例将讲解如何结合 `nginx` 和 `Eureka` 实现微服务的负载均衡,...
Nginx(发音为 "engine-x")是一个高性能的HTTP和反向代理服务器,它以事件驱动和异步非阻塞的方式运行,能够处理数以万计的并发连接,同时保持低内存占用。Nginx最初由俄罗斯的程序员Igor Sysoev开发,并在2004年...
在Tomcat集群中,每个请求可能被分发到不同的服务器,为了保持会话状态的一致性,我们可以使用Redis来存储和同步Session。 4. **Session共享**:在分布式环境中,Session共享是通过在所有服务器之间同步Session数据...
3. **会话保持**:通过设置 cookie 或者 IP哈希策略,Nginx 可以保证用户在集群中的会话一致性,避免会话丢失。 **三、Nginx 配置** 1. **基本配置文件**:Nginx 的配置主要在 `nginx.conf` 文件中进行,包括全局...
在会话共享的场景中,Nginx可以用来处理会话的路由和保持,确保用户在不同的服务之间切换时仍能保持登录状态。 Tomcat8是Apache软件基金会的开源Java Servlet容器,用于运行Java Web应用程序。在多台Tomcat服务器上...
这个模块的主要作用是实现会话持久化,确保来自同一用户的请求被定向到同一台后端服务器,以保持会话状态的一致性。 原版的`sticky`模块只支持Nginx 1.1版本,但随着Nginx的不断迭代,用户对于会话持久化的需要仍然...
而 `sticky` 模块是 Nginx 的一个扩展模块,用于实现会话持久化,即在负载均衡中保持用户请求始终被分配到同一台后端服务器,以确保某些依赖于会话状态的应用程序能够正常运行。 **会话持久化的概念** 会话持久化...
这里使用了 `ip_hash` 来保持客户端会话的一致性,确保同一个用户的请求始终被转发到同一台后端服务器上。 2. **配置HTTPS**:为了增强安全性,还需配置HTTPS。在 `http{}` 模块中添加如下代码: ```nginx ...
5. **会话持久化**: 通过`ip_hash`策略或第三方模块实现会话持久化,保持用户会话在同一台服务器上。 6. **监控与日志**: 实施监控工具(如Prometheus、Grafana)和日志管理(如Logstash、ELK Stack),以便于观察...
- **粘滞性类型**:默认情况下,sticky基于cookie进行会话保持,但也可以选择基于IP地址或者其他自定义变量。 - **会话超时**:可以设置cookie的过期时间,以便在一段时间后重新分配服务器。 - **哈希策略**:可以...