您的位置:首页 > 其它

记在这次HAProxy配置中遇到的问题

2016-08-17 20:19 302 查看
上一篇文章介绍到了HAProxy进行转发功能的配置,其是针对于根据不同情况下来进行的转发。

最近我做的项目是进行公司广州合作机房到aws亚马逊机房之间产生的延时,其中此链路的线路如下:

广州合作机房---->深圳自研机房---->北美自研机房---->aws

针对于这个链路,我们需要在深圳自研机房和北美自研机房上分别架上HAProxy代理进行消息的转发,而由于测速是使用自己用socket写的TCP ping包,就要求TCP包能沿着源链路返回到广州节点上,也就是说其是双向通信的。

刚开始我的配置文件如下:

####################全局配置信息########################
#######参数是进程级的,通常和操作系统(OS)相关#########
global
log 127.0.0.1 local0            #[err warning info debug]
uid 1005                        #所属运行的用户uid
gid 1005                        #所属运行的用户组
daemon                          #以后台形式运行haproxy
pidfile /var/run/haproxy.pid    #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
maxconn 4096

##################默认的全局设置####################
defaults
log global
retries 3
maxconn 2000
mode tcp						#所处理的类别 (#7层 http;4层tcp)
option redispatch               #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
timeout connect 5000                 #连接超时
timeout client 50000            #客户端超时
timeout server 50000            #服务器超时
timeout check 2000              #心跳检测超时

####################监控页面的设置####################
listen admin_status
bind 0.0.0.0:3306			    #监听端口
mode http                      	#http的7层模式
option httplog					#http日志
maxconn 10  					#最大连接数
log 127.0.0.1 local0 err        #错误日志记录
stats refresh 10s               #每隔10秒自动刷新监控页面
stats uri /admin?stats          #监控页面的url
stats auth admin:admin          #监控页面的用户和密码admin,可以设置多个用户名
stats hide-version              #隐藏统计页面上的HAproxy版本信息

########frontend配置############
#####注意:frontend配置里面可以定义多个acl进行匹配操作########
frontend tcp_in
bind 0.0.0.0:3366      			#监听端口
default_backend myback

backend myback
balance roundrobin
server mysock 目的IP地址:3366 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3
listen 3366
bind 0.0.0.0:3366
mode tcp


以上是我在北美的HA的配置,可是测试了很久,也改了很久,经测试后消息可以从广州发到aws上,但是却不能从aws返回到广州,刚开始以为是我的超时这些设置有问题,可是改了之后还是不行,然后就决定再把HAProxy配置的各个属性重新复习一下,后来发现backend里面的balance配置分为两种:roundrobin和source模式。

其中关于这两种模式的介绍如下:

BALANCE 选项:

balance source :如果想让HAProxy按照客户端的IP地址进行负载均衡策略,即同一IP地址的所有请求都发送到同一服务器时,需要配置此选项。

balance roundrobin :HAProxy把请求轮流的转发到每一个服务器上,依据每台服务器的权重,此权重会动态调整。最常见的默认配置。
由于我只是专线,并不需要进行负载均衡,因此需要把balance设置成source,至此重新测试,一切正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: