Nginx模块之SessionSticky (淘宝的tengine)

【3DsMax】UV展开实战:从棋盘格到无缝贴图的进阶指南 本文详细介绍了3DsMax中UV展开的实战技巧,从棋盘格检查到无缝贴图的高级应用。通过边操作、UV缝合、高级松弛策略和接缝规划等核心技巧,帮助用户掌握UV展开的艺术,提升3D模型的贴图质量。适合3D建模师和游戏开发者学习参考。 阅读详情

Nginx以前对session 保持支持不太好,主要采用ip_hash把同一来源的客户(同一C段的IP)固定指向后端的同一台机器,ip_hash有个缺点是不能实现很好的负载均衡;直到nginx的扩展模块nginx-sticky-module的出现,解决了session sticky的问题。

基本的原理:

首先根据轮询RR随机到某台后端,然后在响应的Set-Cookie上加上route=md5(upstream)字段,第二次请求再处理的时候,发现有route字段,直接导向原来的那个节点。

 

配置说明:

upstream cluster_test {

    sticky[name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1][no_fallback];

   server 192.168.100.209:80;

   server 192.168.100.225:80;

}

name: 可以为任何的string字符,默认是route

domain:哪些域名下可以使用这个cookie

path:哪些路径对启用sticky,例如path/test,那么只有test这个目录才会使用sticky做负载均衡

expires:cookie过期时间,默认浏览器关闭就过期,也就是会话方式。

no_fallbackup:如果设置了这个,cookie对应的服务器宕机了,那么将会返回502(bad gateway 或者 proxy error),建议不启用。

 

Nginx编译

添加nginx_upstream_check_module

unzipnginx_upstream_check_module-master.zip

tar -zxf nginx-1.5.6.tar.gz

cd nginx-1.5.6

patch -p1 <../nginx_upstream_check_module-master/check_1.2.6+.patch

添加nginx-sticky-module,编译安装Nginx

tar -xzf nginx-sticky-module-1.1.tar.gz

cd nginx-1.5.6

./configure--prefix=/opt/lsmp/3rdparty/nginx/1.5.6 --with-http_stub_status_module--with-http_ssl_module --with-openssl=../openssl-1.0.1c--with-http_realip_module --add-module=../nginx-sticky-module-1.1--add-module=../nginx_upstream_check_module-master

make

make install

注意事项

nginx-1.5.x和nginx-sticky-module-1.1编译会有点问题,应该是nginx新版本没有相应的nginx-sticky-module,解决办法是把nginx-sticky-module-1.1/ngx_http_sticky_misc.c的281行修改为:

digest->len = ngx_sock_ntop(in,sizeof(struct sockaddr_in), digest->data, len, 1);

由于编译需要,编译安装Nginx之前,要先安装openssl

nginx-sticky-module的cookie过期时间,默认浏览器关闭就过期,也就是会话方式。

淘宝sticky:

http://tengine.taobao.org/document_cn/http_upstream_session_sticky_cn.html


tengine会话保持模块配置 1,tengine会话保持模块(tengine自带模块) ngx_http_upstream_session_sticky_module 2. 确保tengine已经编译此模块 3. 会话保持模块在配置文件中的配置(需要配两个方面) server { listen 192.168.10.10:1223; server_name listener-118906851679798476... 阅读详情

相关推荐

Session共享与Sticky模式:优化Web应用性能

首先,我们需要了解什么是Session。简单来说,Session是一种用于存储特定用户会话所需信息的方法。它使得服务器能够在一段时间内记住用户的动作和偏好设置,比如登录状态、购物车内容等。然而,在分布式环境中,由于请求可能被路由到不同的服务器实例上,传统的基于内存的Session管理方式面临着挑战。注意:当前MSM不支持 tomcat11版本MSM(memcached session manager)提供将Tomcat的session保持到memcached或Redis的程序,可以实现高可用。

技术分享 1595

关于Nginx session sticky

Nginx以前对session 保持支持不太好,主要采用ip_hash把同一来源的客户(同一C段的IP)固定指向后端的同一台机器,ip_hash有个缺点是不能实现很好的负载均衡;直到nginx的扩展模块nginx-sticky-module的出现,解决了session sticky的问题。 基本的原理: 首先根据轮询RR随机到某台后端,然后在响应的Set-Cookie上加上route

云计算、分布式架构、K8S、大数据、机器学习、搜索、推荐、广告 3万+

Nginx使用sticky模块实现对静态资源的Hash负载均衡

Nginx使用sticky模块实现对静态资源的Hash负载均衡

飞龙在天 960

Nginx模块之SessionSticky

0工作原理 Session Sticky模块在upstream返回响应后,向客户的浏览器写入Cookie,默认名为route,保存的内容是一个md5码。 之后,模块接收到客户浏览器的请求时,就根据route来决定将请求转发到upstream中哪台服务器上。 这是源码包中附带的流程图,将模块的处理流程描述的非常清晰: ...

weixin_30455067的博客 754

机器视觉/将HIK海康面阵相机连接Halcon软件

本文简述了如何将海康面阵相机连接到Halcon软件中进行实时取图的过程。

Dahe.qu 4866

【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型

文章目录1. 引言2. Brinson单期归因模型2.1 模型框架2.2 公式推导3. Brinson多期归因模型3.1 模型框架3.2 公式推导4. Brinson模型的应用场景4.1 基金组合归因4.2 基金经理能力刻画4.3 大类资产配置应用5. 模型的实现与实证案例研究写在最后 1. 引言 在 2. Brinson单期归因模型 2.1 模型框架 wp wb rp 组合收益:wp rp 择股收益:wb rp rb 择时收益:wp rb 基准收益:wb rb 2.2 公式推

Mikey_Sun的博客 1万+

配置nginx分发之后处理session一致性方案

session丢失,因为每次刷新都重新分发tomcat,所有session丢失;1,如果使用的是Tengine,可以使用粘滞:session_sticky来解决原理:用户访问网站分发到哪个tomcat,下次刷新分发,继续访问上次的tomcat在Tengine的conf/nginx.conf#insert + indirect模式:upstream test { session_sticky ...

心雨先生 1835

告别手动连接!一键搞定Mumu模拟器与Android Studio的ADB配置

本文详细介绍了如何通过编写自动化脚本,一键完成Mumu模拟器与Android Studio的ADB连接配置。告别繁琐的手动命令输入,该脚本能智能检查环境、判断连接状态并自动处理端口转发,显著提升Android开发者的调试与测试效率。

yog99的博客 495

nginx 配置上游集群服务器会话保持 sticky

nginx会话保持之nginx-sticky-module模块在使用负载均衡的时候会遇到会话保持的问题,常用的方法有:1.ip hash,根据客户端的IP,将请求分配到不同的服务器上;2.cookie,服务器给客户端下发一个cookie,具有特定cookie的请求会分配给它的发布者,注意:cookie需要浏览器支持,且有时候会泄露数据。

yeyiguo的博客 1415

Frida提取Cocos游戏XXTEA密钥的实战方法论

XXTEA是一种轻量级分组加密算法,广泛用于移动端游戏通信保护;其128位密钥的安全性直接决定网络协议逆向成败。在Cocos引擎生态中,密钥常以静态常量、JNI动态传递或Native运行时派生三种形态存在,导致传统静态分析失效。Frida凭借跨Java/Native注入能力与内存实时观测优势,成为捕获密钥‘出生瞬间’的关键工具——尤其适用于hook xxtea_encrypt函数入口、监控JNI参数传递、设置内存断点追踪派生过程等场景。本文聚焦Cocos2d-x与Cocos Creator项目,覆盖从密钥识

weixin_33509600的博客 416

两轮差速小车循线控制原理分析

硬件资料设定:小车驱动来自于两个相同的电机,转向依靠两轮差速实现,小车前后左右安装超声波传感器,前后各一个,左右各两个; 功能目标:假设小车左侧有墙壁,通过超声波测距实现按指定距离沿墙行驶 参数设定:车轮半径r=3cm,车轮间距wd=10cm,车身长length=16cm,侧边超声波传感器前后各一个,假设一个在车头一个在车尾,间距=车身=length=16cm,小车线速度恒定v = 0.2m/s,距离墙d=10cm,假设超声波传感器以10Hz的频率采集距离。 在以上条件下,设定小车出发点,方向与墙平行

aibingjin的博客 1万+

轻量级web服务器nginx学习(7)———nginx实现 sticky粘滞 && session数据共享

文章目录1.sticky粘滞的实现2.session共享 1.sticky粘滞的实现 1.1 实验基础: http是无状态的,所谓无状态即也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户;这对用户的体验是极差的,作为一个用户,当然想要每次访问某些网页时,将上次使用的数据保存以便用户本次访问需求(比如说:我们在连接校园网时,通常连接会跳出登录认证页面,我...

llllyr的博客 1187

AI提示词设计中的批判性思维训练方法

在人工智能应用中,提示词(prompt)设计是影响生成内容质量的关键因素。通过引入批判性思维框架,可以有效提升AI输出的逻辑性和多样性。该方法基于目的澄清、证据评估、假设检验和多视角分析四大支柱,构建结构化的问题拆解和证据链。在学术论文辅助写作、商业决策模拟等场景中,这种训练方式能显著提高内容质量,特别适合学生、职场人士和内容生产者。结合思维可视化工具和本地知识库,可以实现从基础应用到专家级分析的进阶。

weixin_33624741的博客 229

【Nginx高级篇】nginx扩容

nginx单机垂直扩容和集群水平扩容。

m0_62946761的博客 4882

在 AS ABAP 7.40 SP05 里把 HANA 存储过程纳入 ABAP 生命周期:AMDP 实战示例与踩坑笔记

文章摘要:AMDP(ABAP Managed Database Procedures)是SAP推出的框架,用于在ABAP中管理数据库端的存储过程或函数,特别适用于HANA数据库。它通过将数据库语言(如SQLScript)嵌入ABAP方法,实现数据处理逻辑的"下推"(code pushdown),减少应用层与数据库间的数据传输。AMDP适用于需要数据库特有能力或大规模数据处理的场景,但应优先考虑Open SQL或ABAP CDS等更简单的方案。开发时需注意数据库类型检查、参数前缀(:)等语

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

基于STM32L4XX、HAL库的MCP4561数字电位器驱动程序设计

/ HAL库需要左移一位。* @param address: 设备地址(0x2C-0x2F)* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hi2c: I2C句柄。

zhusl6688的博客 340

利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞

一,普通的负载均衡 1,启动nginx服务器 之前已经把/usr/local/nginx/sbin/nginx链接到/sbin下,所以直接使用nginx命令打开 2,修改主配置文件/usr/local/nginx/conf/nginx.conf user  nginx nginx; #原来的nobody设置为nginx和nginx组 # 需要创建用户 [root@server4 con...

Minz 1861

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Nginx会话保持

Nginx的会话保持,也称为粘性会话(sticky sessions),是指在负载均衡场景下,为了保证同一个用户的请求始终被转发到同一台后端服务器进行处理的一种策略。使用Session持久化存储: 如果应用支持将session数据存储在共享存储(如Redis、Memcached等)中,那么即使请求被分发到不同的后端服务器,也能获取到正确的session数据,从而实现跨服务器的会话保持。总的来说,选择哪种方式实现会话保持,需要根据具体的业务需求和技术架构来决定。

qq_34285319的博客 746

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用 ngx_http_upstream_session_sticky_module 实现基于cookie的负载均衡

在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接。使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器。如果基于cookie会是一种什么情形,想想看, 每...

weixin_33800593的博客 593

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

nginx-sticky-module的使用(基于cookie的会话保持)

在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接。使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器。如果基于cookie会是一种什么情形,想想看, 每台电脑都会有不同的cookie,...

hqmln的博客 551

使用tengine解决负载均衡的session问题

事情的经过时这样的~~,我看了好多好多百度中nginx负载均衡中解决session问题的方式,我选择了研究url_hash的方式。经过一番配置之后,我越发觉得这百度搜出来的帖子也太过久远了吧,去http://wiki.nginx.org/上找了找这个模块,在github下载的位置上看到了这样一段话:NOTE: This module is obsolete as of Nginx 1.7.2, wh

壹龙的专栏 2033

linux sticky,session_sticky命令

ngx_http_upstream_session_sticky_module该模块是一个负载均衡模块,通过cookie实现客户端与后端服务器的会话保持, 在一定条件下可以保证同一个客户端访问的都是同一个后端服务器。Example 1# 默认配置:cookie=route mode=insert fallback=onupstream foo {server 192.168.0.1;server ...

weixin_39526546的博客 463

Nginx实现会话保持,集群模式下session域共享

生产环境下,多数系统为了应对线上多种复杂情况而进行了集群架构的部署,保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务,通过它做HTTP协议的Web负载均衡。以上是Nginx会话保持的解决方案。当然,还有很多的方式都可以解决这类问题。/***/

goGoing_的博客 5463

为什么大家都不用session sticky了? | 架构师之路(14)

《架构师之路:架构设计中的100个知识点》14.session sticky相关技术《DNS在架构设计中的三大妙用》发布后,有个朋友反馈:虽然DNS轮询能随时扩展Nginx,NG后端也能随时扩展web-server,但这两种方案都不满足session sticky。这位朋友说的很对,但我了解的大部分互联网公司,已经不再使用session sticky技术了。我不敢说它是过时的技术,但确实很多朋友已...

shenjian58的博客 929

session Replication & session sticky

访问网站时,用户的信息需要存放在客户端和服务器端,存放在客户端的信息叫做Cookie,存放在服务器端的信息叫做session。如果某个站点的人气很高,每天流量很大,那么这个站点的服务器肯定由多台机器构成的集群结构。这样的话,session信息的存放就需要有个策略了。 目前比较流行的策略有两种 1 session Replication:复制会话,就是说用户访问这个站点,那么这个用户的sessi

Mr L.h 1169

Tengine安装及第三方模块添加

tengine安装 目前tengine官方最新版本为2.3.2版本 下载http://tengine.taobao.org/ 准备工作: 解压tar -zxvf tengine-2.3.2.tar.gz 安装GCC: yum -y install gcc gcc-c++ kernel-devel 安装pcre: yum -y install pcre-devel 安装openssl: yum -y......

liucy007的博客 3698
上一篇: 如何将本地代码上传至git仓库
下一篇: Nginx和Apache配置日志格式记录Cookie
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值