Nginx 模块推荐 Session 粘连和扩展失败测试
来源:互联网 发布:freebsd与linux 编辑:程序博客网 时间:2024/04/29 09:12
Nginx 的 Session 粘连
在网站的应用中,常常对于同一个 session 的某个客户端的请求,一定要定位到同一台服务器.不然会出现反应登陆提交之类的问题.这一直以来就是一个棘手的问题.常见的解决方案是 session 共享.我们也能使用 nginx 的扩展模块来达到这个功能.就是使用 nginx-sticky-module 这个模块.
默认的 RR 和 ip_hash 之类是肯定不能定位到同一个 session 到相同的应用服务器上.所以使用上面这个模块的作用是根据的 cookie 的信息对后端的机器进行分发请求.
原理其实很简单,当一个客户端请求过来时,会 set-cookie 一个 cookie 来标注本次请求的服务器(第一次是随机).然后下次请求都会包含这个 cookie .然后就能很好的区分原本请求的服务器了.我测试过,当默认请求的后端服务器死掉后,会还是会自动切换的.另外,这个模块并不合适对不支持 Cookie 的浏览器.
下载地址:http://code.google.com/p/nginx-sticky-module/downloads/list
配置非常容易:
upstream {
sticky;
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
}
下次请求就会有 cookie 的信息了:象 route=1a06c7beb951fc195dcaf59ca3caa0ff 这种信息.默认 cookie 的 key 是 route .还可以设置很多 Cookie 相关的其它的参数如 domain.这引起可以查看相关文档.
Nginx 的后端检查扩展
现在介绍另一个模块.进行后端 upstream 服务器的扩展监控的模块.默认 Nginx 并不能监控 http 的连接是否正常.所以需要使用这个模块来扩展.推荐的这个模块是基于原来的 healthcheck_nginx_upstreams 的设计思想的.
下载地址:https://github.com/yaoweibin/nginx_upstream_check_module
upstream {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send
"GET / HTTP/1.0\r\n\r\n"
;
check_http_expect_alive http_2xx http_3xx;
}
这个也象 haproxy 的这种功能的模块一样,提供了一个简单的界面来显示,只需要简单的配置一下:
location /status {
check_status;
access_log off;
}
难看是难看了点,但有比没有好对吧.
http://www.php-oa.com/2012/03/15/nginx-sticky-upstream-check.html
- Nginx 模块推荐 Session 粘连和扩展失败测试
- Apache配置tomcat负载和session粘连(stickysession)
- nginx扩展模块
- nginx集群使用session粘连Tomcat故障后的会话转移解决策略
- nginx 文件上传模块测试
- nginx 自定义协议 扩展模块开发
- FastDFS-Nginx扩展模块源码分析
- fastdfs-nginx扩展模块源码分析
- fastdfs分布式架构 -- nginx扩展模块使用
- openwrt上nginx扩展模块的支持
- nginx模块和指令
- Nginx源码分析1--------编写Nginx扩展模块
- 吐血推荐cookie和session
- IO扩展模块的测试实例
- LINUX下PHP扩展模块的开发和测试(原创)
- iconv-nginx-module模块测试结果
- Nginx stick cookie curl 模块测试
- nginx 1.4.3 日志模块测试程序
- 唐老师数据结构专题八1
- tomcat中端口的TCP连接传递
- Spring+Struts+Hibernate+Maven
- iis部署提示“未能加载文件或程序集'**'或它的某一个依赖项。试图加载格式不正确的程序”
- WebLogic中的一些基本概念
- Nginx 模块推荐 Session 粘连和扩展失败测试
- UML关系(泛化,实现,依赖,关联(聚合,组合))
- java中堆(heap)和堆栈(stack)有什么区别
- Android中给图片加圆角效果
- 九度题目:和为S的两个数(1352)
- DNS:授权DNS、Local DNS
- C语言关于数组、指针、函数和结构体的其他知识
- MS100题第一题
- sublime text2中gbk转换为utf-8