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计算技巧
亿家乐早餐加盟 早餐加盟连锁 早点加盟项目 早餐店加盟哪家好 早龙早餐加盟
早餐肠粉加盟 早餐行业加盟 移动早点加盟 烤肉加盟 动漫加盟
烤肉加盟 快餐早点加盟 早餐工程加盟 酸奶加盟 早点加盟好项目
春光早餐加盟 早点包子加盟 湖北早餐加盟 五芳斋早餐加盟 自助早餐加盟
河南22选5中奖金额 湖北30选5缩水 陕西福彩快乐十分下载 3d开奖 浙江11选5技巧
彩票软件 快三青海快三开奖结果 香港六合彩开奖历史记录 天吉网彩票论坛 江西快3开奖号码
秒秒彩漏洞稳赚技巧 新疆体育彩票十一选五 贵州快三开奖结果查询今天 辽宁十一选五 四川福彩快乐12一定牛
时时彩杀和尾 黑龙江快乐10分开奖好 河南泳坛夺金481技巧 河北11选5开奖结果彩票控 上海天天彩选四开奖