Nginx Session Sticky
nginx的粘性session主要通过nginx-sticky-module实现
1 下载 nginx-sticky-module
下载地址:https://code.google.com/p/nginx-sticky-module/downloads/list
官方文档:https://code.google.com/p/nginx-sticky-module/wiki/Documentation
2 安装
解压nginx-sticky-module到/usr/local
tar -xzf nginx-sticky-module-1.1.tar.gz
进入 nginx 源码目录/usr/local/nginx-1.6.2,执行命令,重新编译:
./configure ... --add-module=../nginx-sticky-module-1.1
make
make install
3 make报错
make的时候可能由于高版本的原因会出现以下错误:
make[1]: *** [objs/addon/nginx-sticky-module-1.1/ngx_http_sticky_misc.o] Error 1
make[1]: Leaving directory `/usr/local/nginx-1.6.2'
make: *** [build] Error 2
解决方法:
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);
4 sticky使用
upstream 172.16.0.16 {
sticky;
server 172.16.0.17:8180;
server 172.16.0.17:8280;
server 172.16.0.18:8180;
server 172.16.0.18:8280;
}
sticky支持的参数:sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback];
name: 可以为任何的string字符,默认是route
domain:哪些域名下可以使用这个cookie
path:哪些路径对启用sticky,例如path/test,那么只有test这个目录才会使用sticky做负载均衡
expires:cookie过期时间,默认浏览器关闭就过期,也就是会话方式。
no_fallbackup:如果设置了这个,cookie对应的服务器宕机了,那么将会返回502(bad gateway 或者 proxy error),建议不启用。
如下:
sticky name=routeID expires=1h domain=.test.com path=/;
Nginx Session Sticky的更多相关文章
- Session Sticky About Nginx
Nginx以前对session 保持支持不太好,主要采用ip_hash把同一来源的客户(同一C段的IP)固定指向后端的同一台机器,ip_hash有个缺点是不能实现很好的负载均衡:直到nginx的扩展模 ...
- ip_hash(不推荐使用) 会话粘性问题分析 Cookie 的 Session Sticky
Nignx 连接tomcat时会话粘性问题分析_changyanmanman的专栏-CSDN博客_后端tomcat导致 前端elb中断 https://blog.csdn.net/cymm_liu/a ...
- nginx添加sticky模块-cookie保持会话
cookie不同于session,一个存于客户端,一个存于服务端. 环境nginx 1.8.0 centos6.X sticky:1.2.5 wget https://bitbucket.org/n ...
- 解决nginx session共享的问题
不使用session,换作cookie 能把session改成cookie,就能避开session的一些弊端,在从前看的一本J2EE的书上,也指明在集群系统中不能用session,否则惹出祸端来就不好 ...
- nginx session 配置失效解决
nginx 反向代理后台web服务器session path导致的session 失效,特此总结下配置方法: 配置如下: location ^~ /2016tyjf_dev/djwechat { pr ...
- nginx添加sticky cookie 分流模块
需要下载nginx源码和sticky,在nginx配置文件中添加sticky模块,然后重新编译nginx. #准备安装基础环境:yum install gcc openssl-devel pcre-d ...
- redis nginx session tomcat
Redis解决session共享 http://lyl-zsu.iteye.com/blog/2408292 http://zx10103326.iteye.com/blog/2244195 http ...
- windows tomcat nginx session(当一台tomcat关闭后)
在windows下作nginx负载均衡测试. nginx的配置文件如下: worker_processes 1; events { worker_connections 1024; } http ...
- Microsoft Azure 的负载平衡器的Session Sticky
Microsoft Azure 的负载平衡器是一种 Layer-4负载平衡器.Microsoft Azure 负载平衡器通过针对给定输入端点上接收到的流量计算哈希函数,在一组可用的服务器(虚拟机)之间 ...
随机推荐
- Android指南 - 主题
译者注:theme(主题)和style(样式)是专用术语,下面对这两个词汇不在使用中文词汇. theme 是安卓的一种机制,用于为应用程序和activity提供一致的样式(style).样式s ...
- jQuery(六):value值操作
val()可以获取或设置元素的value属性值.语法如下: 示例: <!DOCTYPE html> <html lang="en"> <head> ...
- python使用pymongo访问MongoDB的基本操作,以及CSV文件导出
1. 环境. Python:3.6.1 Python IDE:pycharm 系统:win7 2. 简单示例 import pymongo # mongodb服务的地址和端口号mongo_url = ...
- Java 代理使用及代理原理
今天再测试Socket编程时,无法连接外网.公司用的是Http的代理.上网搜索也没看太懂,所以花了大量时间来学习.看了HTTP和TCP协议的关系好,才有所明白.现在能通过Socket使用HTTP代理了 ...
- Android studio导入framework编译的classes.jar包
1.在libs文件夹中加入jar包,并将其置顶 注:studio3.1的scope没有Provided选项,都默认选择implementation,studio2.3及以下版本需要将scope设置为P ...
- ADB 设置远程调试
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00016657 相信很多人在android 开发调试的时 ...
- nodemon是个好东西
不说话,直接上图: 安装 使用
- VS2015 applicationhost.config 本地域名访问
.vs\config\applicationhost.config <?xml version="1.0" encoding="UTF-8"?> & ...
- vi编辑器的使用方式
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- 通过NAT转发实现私网对外发布信息
我们可以在防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包. 具体的IP ...