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应用,通过负载均衡,可以将一台服务器的工作扩展到多台服务 ...
随机推荐
- glsl:error C1105: cannot call a non-function
今天写的shader编译过程中报了这个错误,而且错误行数是0.原因怎么找也找不到.后来发现原来是normalize方法写成了了normal正好和函数的形参名字一样. 特地记录一下.
- jvm中的新生代Eden和survivor区
1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...
- JS 深拷贝/合并
var mix = function(r, s, ov) { if (!s || !r) return r; if (ov === undefined) ov = true; for (var p i ...
- 优秀.NET界面控件DevExpress v19.1.6全新来袭!新改进抢“鲜”看
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- beanFactory & FactoryBean区别
FactoryBean Spring内部实现的一种规范& 开头作为beanName Spring中所有的容器都是FactoryBean 因为容器本身也由容器管理, root来创建 都是单列在I ...
- 01-01 Web应用
一 Web应用的组成 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返回相应的数据给浏览 ...
- Vue学习搭建(基础)
空项目:https://github.com/ElementUI/element-starter.git 参考教程:https://blog.csdn.net/xuehu837769474/artic ...
- 修改 Linux 服务器时间
1.当前时间 [app@127-0-0-1 shine]$ date Wed Oct 23 11:44:30 CST 2019 2.修改时间 [app@127-0-0-1 shine]$ date - ...
- 报错:没有与参数列表匹配的构造函数 "CFileDialog::CFileDialog" 实例
如果是在解决方案管理器窗口内,右击你的项目“项目”,然后选“属性”(最后一项),再点“配置属性”,是个“+”号,把它展开,然后选“常规”选项卡,倒数第三项“字符集”,选择“使用多字节字符集”.再编译应 ...
- linux中的selinux到底是什么
一文彻底明白linux中的selinux到底是什么 2018年06月29日 14:17:30 yanjun821126 阅读数 58877 标签: SElinux 更多 个人分类: Linux 一 ...