免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux

海量运维常用技术之----HAProxy网站负载均衡应用(获奖名单已公布-9-11) [复制链接]

论坛徽章:
0
发表于 2013-07-18 11:01 |显示全部楼层
回复 100# Godbach
请问这位大哥一下:
如果是做tcp层的负载均衡,只能使用tunnel模式吧,如果使用transcation 模式的话,会出现错误吧?

如果是做http层负载均衡,使用transcation 的话,对于长连接

例如第一次客户请求发送到了A上,用户名和密码验证通过了
第二次请求发送到了B上,岂不是出现错误了

类似于这种情况,采用何种方式跟踪会话啊(cookie)?
   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-07-18 11:19 |显示全部楼层
本帖最后由 Godbach 于 2013-07-18 11:22 编辑

回复 101# 316953425


请问这位大哥一下:
如果是做tcp层的负载均衡,只能使用tunnel模式吧,如果使用transcation 模式的话,会出现错误吧?

如果只做 TCP 的负载均衡,其实用 lvs 性能更好。

这里所说的 tunnel 模式,和 TCP 的负载均衡不一样。这种模式下,haproxy 还是要查看第一个 GET 请求,并根据配置可以修改它的 header,并根据配置选择合适的 server。只是对于同一个连接上的后续的 GET 请求,haproxy 都不再查看其内容,而是直接 forward 了。

如果你用的是 TCP 模式,而又启用了 transcation 模式的话,haproxy 可以正常启动和服务,同时会告知你忽略这个配置项,诸如下面的提示:
config : 'option http-server-close' ignored for frontend 'vs_1' as it requires HTTP mode.


如果是做http层负载均衡,使用transcation 的话,对于长连接
例如第一次客户请求发送到了A上,用户名和密码验证通过了
第二次请求发送到了B上,岂不是出现错误了
类似于这种情况,采用何种方式跟踪会话啊(cookie)?


我看前面大家讨论的情况,估计用的是 tunnel 模式。这种模式下,haproxy 的吞吐性能更好一些,而且前端同一个连接上多个请求,都让同一个后端 server 服务也合理。

你说的这种情况,就需要让请求对被同一个 server 服务才行。
最简单的话,可以用根据 source ip 来做会话保持,同一来源 IP 的都给同一个 server。其次,你说的 cookie 也是可以的。


   

论坛徽章:
0
发表于 2013-07-18 12:59 |显示全部楼层
回复 102# Godbach

谢谢这位大哥了,我现在使用haproxy在做tcp模式的负载均衡。
感觉haproxy对tcp的支持都挺简单的;没有像http那么多复杂的配置
,不知道是不是我想的比较简单了,有很多地方没有考虑周全?如果有的话,请大哥指点一下,还有做tcp负载均衡需要注意什么?
以下部分是我的配置文件:(麻烦大哥给指点一下)
###########全局配置#########
global
       chroot      /root
       pidfile     /tmp/haproxy.pid
       user        root
       group       root
       daemon
        nbproc 1

########默认配置############
defaults
        mode http               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        retries 2               #两次连接失败就认为是服务器不可用,也可以通过后面设置
        option redispatch       #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
        option abortonclose     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        maxconn 4096            #默认的最大连接数
        timeout connect 5000ms  #连接超时
        timeout client 30000ms  #客户端超时
        timeout server 30000ms  #服务器超时
        #timeout check 2000      #=心跳检测超时
        log 127.0.0.1 local0 err #[err warning info debug]

        option nolinger  清除肮脏连接后开成的tcp 状态及占用的资源,不过并不是强列要求你用这个选项,当然如果你有thousands of FIN_WAIT1 sessions on your system ,那肯定得用了

         option srvtcpka  是否允许向server 发送keepalive
        option tcpka 是否允许向server和client发送keepalive
        option tcplog  允许记录tcp 连接的状态和时间

         fullconn 10000 #Specify at what backend load the servers will reach their maxconn.


########统计页面配置########
listen admin_stats
        bind 0.0.0.0:1080               #监听端口
        mode http                       #http的7层模式
        option httplog                  #采用http日志格式
        #log 127.0.0.1 local0 err
        maxconn 10
        stats refresh 30s               #统计页面自动刷新时间
        stats uri /stats                #统计页面url
        stats realm XingCloud\ Haproxy  #统计页面密码框上提示文本
        stats auth admin:admin          #统计页面用户名和密码设置
        #stats hide-version              #隐藏统计页面上HAProxy的版本信息


########test1配置#################
listen test1
        bind 0.0.0.0:90
        mode tcp
        #maxconn 4086
        #log 127.0.0.1 local0 debug
        server s1 10.18.138.201:80 weight 3 check inter 2000 rise 2 fall 3
        server s2 10.18.102.190:80 weight 3 check inter 2000 rise 2 fall 3


backend tcp_server
       server s3 10.5.1.81:80 weight 3 check inter 2000 rise 2 fall 3
  
frontend tcp_haproxy
      bind 0.0.0.0:85
      default_backend tcp_server



   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-07-18 13:36 |显示全部楼层
回复 103# 316953425


TCP 模式的基本配置上比较简单。但 TCP 也有很多高级配置,只是你没用到而已。

此外,一些 timeout 配置项,应该加上比较好一些。比如 timeout connnect/timeout client/timeout server 等。

   

论坛徽章:
0
发表于 2013-07-18 13:41 |显示全部楼层
回复 104# Godbach


    您所说的高级配置能否介绍一二,给小弟入门一下?

我去研究一下

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-07-18 13:45 |显示全部楼层
本帖最后由 Godbach 于 2013-07-18 13:53 编辑

回复 105# 316953425
我上面帖子给出了那几个配置项的名称了,不过这几个不算高级配置吧。

其实最重要的还是看你的需求。

haproxy 1.5-dev 版本的配置手册见链接:
http://cbonte.github.io/haproxy-dconv/configuration-1.5.html


   

论坛徽章:
6
丑牛
日期:2013-09-17 00:18:40未羊
日期:2013-10-31 12:10:47午马
日期:2013-12-07 01:58:50水瓶座
日期:2013-12-24 22:43:12水瓶座
日期:2014-03-15 21:12:13操作系统版块每日发帖之星
日期:2016-08-07 06:20:00
发表于 2013-07-18 14:02 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
发表于 2013-07-18 17:42 |显示全部楼层
        我笑一笑

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2013-07-18 17:47 |显示全部楼层
zhaopingzi 发表于 2013-07-18 17:42
我笑一笑

笑啥啊?

论坛徽章:
0
发表于 2013-07-19 11:23 |显示全部楼层
一 、
a、haproxy采用是nat方式进行转发,访问量过大(PV达到了亿级/日的访问量),haproxy这块流量是不是会有瓶颈~
b、对多域名,可用进行很好管理,文件可以进行规制过滤。解决session一致性问题

二、高可用的话,会选择HAProxy+Keepalived,感觉HAProxy+Heartbeat配置要复杂些。呵呵

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP