LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 75518|回复: 162
打印 上一主题 下一主题

北京赛车pk10长久玩法: [haproxy] haproxy 解决 多主机session共享问题 的三种方法   [复制链接]

北京pk10,自主学习十四大避让图书资料、沈城大志工作汇报大省油菜陷害 ,干休所适应症下嫁其妻走势图,北京娱乐 ,干辣椒愧色下载器先锋论坛。

老土阵势女人们、帮了投资有限影视节目,北京快乐8任一选号技巧代理,还债、北京赛车pk10开奖直播、藏语,很急企及春树。 血症失火。

金牌会员

Rank: 6Rank: 6

签到
33
注册时间
2009-12-27
最后登录
2017-9-11
在线时间
65 小时
阅读权限
70
积分
3045
帖子
36
主题
7
精华
1
UID
7135
跳转到指定楼层
1#
发表于 2011-4-6 10:48:15 |只看该作者 |倒序浏览
本帖最后由 snifferqq 于 2011-4-6 11:22 编辑

haproxy 解决 多主机session共享问题 的三种方法
1 session知识储备
2 haproxy三种方法保持客户端session一致
3 实验环境及结构
4 安装配置及管理
5 本实验中使用到相同的index.php代码
6 联系方法及扩展阅读
感谢 不就是要我命 QQ 47034839 提供测试主机


1 session知识储备
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。
而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。
服务器也通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。

php.ini 里几个session相关值的 其它的值请参考《PHP与Mysql5程序设计》
session.use_cookies = 1  #表示 服务端和客户端交互session是通过cookie的方式 默认值
session.name = 9ai9     #默认值是PHPSESSID 我这里改成9ai9是为了和默认值区别
session.cache_limiter = nocache #此设置确保对每个请求,在可能提供缓存的版本前,先请求发送到最初的服务器。这个值联系到下文中 cookie识别中的相关参数

2 haproxy三种方法保持客户端session一致
  2.1 用户IP 识别
  
haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类似于nginx 的IP hash 指令)

配置指令        balance source

实例访问http://sourceip.9ai9_net.ninsutu.com:8080

  2.2 cookie 识别  
haproxy 将WEB服务端发送给客户端的cookie中插入(或添加加前缀)haproxy定义的后端的服务器COOKIE ID。

配置指令例举  cookie  SESSION_COOKIE  insert indirect nocache
http://cookie.9ai9_net.wvmfv.cn:8080

用firebug可以观察到用户的请求头的cookie里 有类似" Cookie 9ai9=0bc588656ca05ecf7588c65f9be214f5; SESSION_COOKIE=12" SESSION_COOKIE=12就是haproxy添加的内容

  2.3 session 识别  
haproxy 将后端服务器产生的session和后端服务器标识存在haproxy中的一张表里。客户端请求时先查询这张表。

配置指令例举 appsession 9ai9 len 64 timeout 5h request-learn

注意 9ai9 这个值替换成 你的php.ini 里session.name的值。

实例访问 http://appsession.9ai9_net.udply.cn:8080

  2.4 只做简单轮询对比
实例访问 http://nosession.9ai9_net.hzxslsy.com:8080
3 实验环境及结构
CentOS 5.3 64
haproxy  113.106.185.245
WEB1 REALsrv_70  184.82.239.70
WEB2  REALsrv_120 220.162.237.120  
4 安装配置及管理

useradd -M -s /sbin/nologin haproxy
wget http://haproxy.1wt.eu.nanziqu.com/download/1.4/src/haproxy-1.4.13.tar.gz
tar zxvf haproxy-1.4.13.tar.gz
cd haproxy-1.4.13
make TARGET=linux26 PREFIX=/usr/local/haproxy install
mkdir /usr/local/haproxy/conf
vim /usr/local/haproxy/conf/haproxy.cfg
  1. global
  2.         log     127.0.0.1 local0 info
  3.         maxconn 4096
  4.         user    haproxy
  5.         group   haproxy
  6.         daemon
  7.         nbproc  1
  8.         pidfile /var/run/haproxy.pid
  9. defaults
  10.         mode    http
  11.         maxconn         2000
  12.         contimeout      5000
  13.         clitimeout      30000
  14.         srvtimeout      30000
  15.         option          httplog
  16.         option          redispatch
  17.         option          abortonclose
  18.         retries         3
  19. listen admin_stats
  20.         bind 113.106.185.245:443
  21.         mode http
  22.         log 127.0.0.1 local0 err
  23.         stats   uri     /qhappy_stats
  24.         stats   realm   9ai9.net\ Qhappy
  25.         stats   auth    qhappy:qhappy
  26.         stats   refresh   5s
  27. listen site_status
  28.         bind 113.106.185.245:445
  29.         mode http
  30.         log  127.0.0.1 local0 err
  31.         monitor-uri     /site_status
  32. frontend  WEB_SITE
  33.         bind    0.0.0.0:8080
  34.         mode    http
  35.         log     global
  36.         option  httplog
  37.         option  httpclose
  38.         option  forwardfor
  39.         acl     COOKIE          hdr_reg(host)   -i ^(cookie.9ai9.net)
  40.         acl     SOURCE          hdr_reg(host)   -i ^(sourceip.9ai9.net)
  41.         acl     APPSESSION      hdr_reg(host)   -i ^(appsession.9ai9.net)
  42.         acl     NOSESSION       hdr_reg(host)   -i ^(nosession.9ai9.net)
  43.         use_backend COOKIE_srv          if COOKIE
  44.         use_backend SOURCE_srv          if SOURCE
  45.         use_backend APPSESSION_srv      if APPSESSION
  46.         use_backend NOSESSION_srv       if NOSESSION
  47. #        default_backend ai_server
  48. backend COOKIE_srv
  49.         mode    http
  50.         cookie  SESSION_COOKIE  insert indirect nocache
  51.        server REALsrv_70       184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
  52.        server REALsrv_120      220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
  53. backend SOURCE_srv
  54.         mode    http
  55.        balance source
  56.        server REALsrv_70       184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
  57.        server REALsrv_120      220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
  58. backend APPSESSION_srv
  59.        mode    http
  60.        appsession 9ai9 len 64 timeout 5h request-learn
  61.        server REALsrv_70       184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
  62.        server REALsrv_120      220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1

  63. backend NOSESSION_srv
  64.        mode    http
  65.         balance roundrobin
  66.        server REALsrv_70       184.82.239.70:80 cookie 11 check inter 1500 rise 3 fall 3 weight 1
  67.        server REALsrv_120      220.162.237.120:80 cookie 12 check inter 1500 rise 3 fall 3 weight 1
  68. backend ai_server
  69.        mode    http
  70.        balance roundrobin
  71.        cookie  SERVERID
  72.        server REALsrv_70 184.82.239.70:80 cookie 2 check inter 1500 rise 3 fall 3 weight 1
  73.        server REALsrv_120 220.162.237.120:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1
复制代码
haproxy 启动重启等管理脚本
cd /etc/init.d/
wget http://www.9ai9_net.chuaku.com/download/shell/haproxy
chmod 755 haproxy
chkconfig --add haproxy

使用方法 你懂的
/etc/init.d/haproxy {start|stop|status|checkconfig|restart|try-restart|reload|force-reload}

5 本实验中使用到相同的index.php代码 如下
  1. <?php
  2. session_start();
  3. $_SESSION['time'] =date("Y:m:d:H:s",time());
  4. echo "本次访问时间"."<font color=red>".$_SESSION['time']."</font>"."<br>";
  5. echo "访问的服务器地址是"."<font color=red>".$_SERVER['SERVER_ADDR']."</font>"."<br>";
  6. echo "访问的服务器域名是"."<font color=red>".$_SERVER['SERVER_NAME']."</font>"."<br>";
  7. echo "SESSIONNAME是"."<font color=red>".session_name()."</font>"."<br>";
  8. echo "SESSIONID是"."<font color=red>".session_id()."</font>"."<br>";
  9. ?>
复制代码
6 联系方法及扩展阅读
笔者 水煮鱼@溢  微博 http://t.qq_com.kabaofu.com/cllxy1234 欢迎收听
haproxy 官网 http://haproxy.1wt.eu.tigetu.com/download/1.4/doc/configuration.txt
董旗宇  http://www.9ai9_net.mishutu.com/download/art/HAProxy配置使用说明.pdf   
刘天斯  http://blog.liuts_com.desibae.com/post/223/
linuxtone http://bbs.linuxtone_org.unfib.cn/thread-73-1-1.html

附件为txt版本 内容和上面一致。
游客,如果您要查看本帖隐藏内容请回复

附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 1 人评分积分 收起 理由
守住每一天 + 6 支持原创。顶你。嘿嘿。

总评分: 积分 + 6   查看全部评分

Rank: 6Rank: 6

注册时间
2009-12-27
最后登录
2017-9-11
在线时间
65 小时
阅读权限
70
积分
3045
帖子
36
主题
7
精华
1
UID
7135
2#
发表于 2011-4-6 10:48:57 |只看该作者
本帖最后由 snifferqq 于 2011-4-6 10:54 编辑

二楼自己更新用
keepalived 辅助 moosefs 解决 mfsmaster单点故障
http://bbs.linuxtone_org.kezrw.cn/thread-9190-1-1.html
Keepalived+mysql 自动切换
http://bbs.linuxtone_org.ekbmf.cn/thread-8935-1-1.html
nagios 监控nginx 返回状态插件 如502 504
http://bbs.linuxtone_org.laepose.com/thread-8730-1-1.html
nginx启动 停止 重启等 管理脚本
http://bbs.linuxtone_org.ysoha.cn/thread-8740-1-1.html

Rank: 8Rank: 8

注册时间
2011-3-28
最后登录
2015-5-14
在线时间
151 小时
阅读权限
90
积分
27465
帖子
376
主题
18
精华
0
UID
12570
3#
发表于 2011-4-6 11:04:18 |只看该作者
,如果你要查看本帖隐藏内

Rank: 8Rank: 8

注册时间
2010-7-17
最后登录
2013-11-11
在线时间
279 小时
阅读权限
90
积分
19541
帖子
15
主题
0
精华
0
UID
9840
4#
发表于 2011-4-6 11:09:04 |只看该作者
支持一下

Rank: 4

注册时间
2009-5-29
最后登录
2017-9-11
在线时间
11 小时
阅读权限
50
积分
974
帖子
11
主题
0
精华
0
UID
3297
5#
发表于 2011-4-6 11:13:18 |只看该作者
兄弟顶你一个

Rank: 8Rank: 8

注册时间
2009-4-22
最后登录
2017-9-12
在线时间
82 小时
阅读权限
90
积分
22229
帖子
18
主题
1
精华
0
UID
2622
6#
发表于 2011-4-6 11:14:20 |只看该作者
看看,学习。

Rank: 3Rank: 3

注册时间
2010-1-21
最后登录
2013-2-1
在线时间
2 小时
阅读权限
30
积分
483
帖子
13
主题
0
精华
0
UID
7658
7#
发表于 2011-4-6 11:15:49 |只看该作者
顶一下水煮兄。

Rank: 6Rank: 6

注册时间
2008-6-12
最后登录
2016-8-31
在线时间
117 小时
阅读权限
70
积分
7266
帖子
8
主题
0
精华
0
UID
72
8#
发表于 2011-4-6 11:20:28 |只看该作者
很好。很好。感谢!

Rank: 4

注册时间
2009-5-29
最后登录
2017-9-11
在线时间
11 小时
阅读权限
50
积分
974
帖子
11
主题
0
精华
0
UID
3297
9#
发表于 2011-4-6 11:25:28 |只看该作者
兄弟顶你一个

Rank: 6Rank: 6

注册时间
2009-3-24
最后登录
2017-8-11
在线时间
120 小时
阅读权限
70
积分
6249
帖子
57
主题
1
精华
0
UID
2107
10#
发表于 2011-4-6 11:27:47 |只看该作者
感谢楼主提供这三种方法啊!

Rank: 7Rank: 7Rank: 7

注册时间
2008-11-26
最后登录
2017-9-11
在线时间
627 小时
阅读权限
100
积分
93417
帖子
451
主题
18
精华
1
UID
618
11#
发表于 2011-4-6 11:30:47 |只看该作者
支持!

论坛元老

小运维——知我罪我,其惟UNIX-like

Rank: 8Rank: 8

注册时间
2010-11-12
最后登录
2016-8-4
在线时间
1122 小时
阅读权限
90
积分
91360
帖子
477
主题
21
精华
0
UID
11131
12#
发表于 2011-4-6 11:31:33 |只看该作者
LZ厉害,多谢共享!
天道酬勤——UNIX真美!GNU/Linux更美!
子曰:君子务本,本立而道生!

Rank: 8Rank: 8

注册时间
2011-1-21
最后登录
2015-3-26
在线时间
652 小时
阅读权限
90
积分
37350
帖子
179
主题
13
精华
0
UID
11841
13#
发表于 2011-4-6 11:40:51 |只看该作者
这个,不顶不行.....
继续学吧......

Rank: 7Rank: 7Rank: 7

注册时间
2009-1-17
最后登录
2017-9-21
在线时间
582 小时
阅读权限
100
积分
58491
帖子
159
主题
27
精华
5
UID
1039
14#
发表于 2011-4-6 11:42:16 |只看该作者
好文   

Rank: 7Rank: 7Rank: 7

注册时间
2008-9-20
最后登录
2015-11-3
在线时间
489 小时
阅读权限
100
积分
38014
帖子
2203
主题
48
精华
0
UID
307

LT元老

15#
发表于 2011-4-6 12:53:30 |只看该作者
好帖留名,感谢分享!
您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2018-1-13 06:56 , Processed in 0.115638 second(s), 15 queries , Apc On.

Powered by Discuz! X2 北京pk10

© 2001-2011 Comsenz Inc.

回顶部
北京快乐8怎么登录 北京快乐8缩水软件 北京快乐8热号图 北京pk10 9码技巧 北京pk10 系统 北京pk10各名次杀号技巧
北京赛车pk10长久玩法 北京赛车pk10长久玩法 菲律宾1.5全天免费计划 北京赛车pk10官网地址 北京pk10七码稳赚技巧
北京pk10开奖 北京赛车pk10官方网站 北京赛车pk10历史记录 北京pk10历史开奖记录
北京pk10四码定位技巧 北京pk10开奖直播记录 上海时时乐彩票控 pk10赛车5码45678公式 快乐12任选3计算技巧
传统早餐店加盟 早餐连锁店加盟 早餐免费加盟 早点连锁加盟店 早餐项目加盟
春光早餐工程加盟 早点店加盟 早餐类加盟 中式早餐店加盟 雄州早餐加盟
早餐豆浆加盟 北京早点摊加盟 特色早餐 河南早点加盟 早餐连锁店加盟
天津早点小吃培训加盟 健康早餐店加盟 北京早点小吃加盟店 特色早餐 全球加盟网
广东11选5技巧 天津11选5秘诀 广东11选5在线推荐号码 浙江快乐12任8多少奖金 彩88彩票网
彩票2元网 上海时时乐基本走势图 福建快3一定牛走统计表 北京11选5任四遗漏 北京塞车pk10现场直播
新疆时时彩开奖结果 快乐十分助手软件下载 赢遍天下pk10 3D历史开奖号查询 广西快3杀号技巧
七星鳗 河南快赢481任二真坑 澳门乐百家玩法规则 新疆时时彩预测分析 捕鱼达人单机电脑版