Nginx负载均衡服务器实现会话粘贴的几种方式
1、 使用Nginx 的ip_hash作为负载均衡服务并支持Session sticky
2、 使用nginx sticky第三方模块实现基于cookie的负载均衡
3、使用nginx的map指令根据cookie分流:
map $COOKIE_abcdexpid $group {
  ~*1$	apache001;
  ~*2$	apache002;
  default	root;
}
upstream apache001 {
  server 192.168.1.1:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream apache002 {
  server 192.168.1.2:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream root {
  server 192.168.1.0:8080 weight=1 max_fails=1 fail_timeout=30s;
}
server {
  listen       8080;
  server_name  neoremind.net;
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" "group=$group"'
            '"$http_user_agent" $gzip_ratio $request_time "$http_x_forwarded_for"';
  access_log  logs/access_log main;
  error_log   logs/error_log;
  location / {
        proxy_pass http://$group;
    proxy_set_header X-Forwarded-For $remote_addr;
    }
}
4、 利用set和if…else… 根据cookie分流
upstream apache001 {
  server 192.168.1.1:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream apache002 {
  server 192.168.1.2:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream root {
  server 192.168.1.0:8080 weight=1 max_fails=1 fail_timeout=30s;
}
server {
  listen       8080;
  server_name  beidoutest.baidu.com;
  #match cookie
  set $group "root";
  if ($http_cookie ~* "abcdexpid=([^;]+)(1$)"){
    set $group apache001;
  }
  if ($http_cookie ~* "abcdexpid=([^;]+)(2$)"){
    set $group apache002;
  }
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" "group=$group"'
            '"$http_user_agent" $gzip_ratio $request_time "$http_x_forwarded_for"';
  access_log  logs/access_log main;
  error_log   logs/error_log;
  location / {
    proxy_pass http://$group;
    proxy_set_header X-Forwarded-For $remote_addr;
  }
}
5、nginx1.7.2版本后提供的hash方法:
# http context
upstream backend_hosts {
hash $cookie_jsessionid consistent;
server host1.example.com;
server host2.example.com;
server host3.example.com;
}
- 本文来自:Linux学习网
Nginx负载均衡服务器实现会话粘贴的几种方式的更多相关文章
- Nginx(七):keepalived实现Nginx负载均衡服务器的双机高可用
		前言 之前咱们通过 Nginx(六):Nginx HTTP负载均衡和反向代理的配置与优化 和 Nginx+tomcat组合实现高并发场景的动静分离和负载均衡方案 这两篇文章了解了Nginx对高并发应用 ... 
- LNMP 之 Nginx负载均衡服务器
		Nginx负载均衡服务器 参考教程:[千峰教育] 准备工作: 三台服务器,每台服务器都需要安装nginx. 1.关闭防火墙 service iptables stop2.关闭Selinux seten ... 
- nginx 负载均衡服务器的双机搞可用
		摘自书籍:<实战Nginx取代Apache高性能Web服务器>一书 P94 两种方式实现 一种方式是公司里的一台web服务器作为主服务器,另一台服务器作为热备服务器 主服务器绑定一个虚拟I ... 
- Nginx 负载均衡服务器的下载与安装 【window10】
		1.前言 Nginx是什么? 找了下资料,解释 : Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器, ... 
- nginx作为负载均衡服务器——测试
		i. 需求 nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器. nginx负载均衡服务器:192.168.101.3 tomcat1服 ... 
- Nginx+Keepalived主主负载均衡服务器
		Nginx+keepalived主主负载均衡服务器测试实验环境: 主Nginx之一:192.168.11.27主Nginx之二:192.168.11.28Web服务器一:192.168.11.37We ... 
- 浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
		1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ... 
- 【转】浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
		1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ... 
- 012.Nginx负载均衡
		一 负载均衡概述 1.1 负载均衡介绍 负载均衡是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验.对于Web应用,通过负载均衡,可以将一台服务器的工作扩展到多台服务 ... 
随机推荐
- linux yum 安装及卸载
			在Centos中yum安装和卸载软件的使用方法安装方法安装一个软件时yum -y install httpd安装多个相类似的软件时yum -y install httpd*安装多个非类似软件时yum ... 
- tornada-数据库
			数据库 torndb安装 连接初始化 执行语句 execute execute_rowcount 查询语句 get query 与Django框架相比,Tornado没有自带ORM,对于数据库需要自己 ... 
- 02bag模板
			cost->体积 weight->价值 hdu2844 可达/不可达 #include <stdio.h> #include <algorithm> ... 
- GO (待更新)
			日期20190531,GO AND TOOLS FOR HOME 0 环境搭建 https://golang.org/dl/ Install the Go tools If you are upgr ... 
- CSS之运算,Sass 之运算(加、减、乘、除)
			1. 加减法 加减法不是重点,重点是在SassScript中用到的两种单位之间的转换:绝对单位:px, pt, pc, in, mm, cm...绝对单位都能运算:相对单位:ex, em, rem.. ... 
- 百度之星 初赛三 最短路 2 Dijkstra
			打比赛的时候切的,不过竟然 wa 了 14 次~ 挺简单的,直接在跑 $Dijkstra$ 的时候记录一下路径最大值就好了. #include <bits/stdc++.h> #defin ... 
- C语言 - strcpy和strncpy的编程实现及总结
			一.字符串的strcpy与strncpy函数 1.编程实现strcpy函数(笔试很容易考到) 要求: 原型:char *stpcpy(char *strDest,char *strSrc); 头文件: ... 
- HDU 6444 Neko's loop ( 2018 CCPC 网络赛 && 裴蜀定理 && 线段树 )
			题目链接 题意 : 给出一个 n 个元素的环.可以任意选择起点.选完起点后.可以行走 m 步.每次前进 k 个单位.所走到的点将产生正或负贡献.问你一开始得准备多少才能使得初始资金加上在环上获取最大利 ... 
- Codeforces Round #201 (Div. 2). E--Number Transformation II(贪心)
			Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description You ar ... 
- Java Optional  orElse() 和 orElseGet() Optional.flatMap()和Optional.map()区别
			Java Optional 的 orElse() 和 orElseGet() 的区别 1. 接收的参数不同 orElse()方法以一个自定义类型的数据作为参数 public T orElse(T t) ... 
