千万级高并发负载均衡HAProxy安装及使用示例
来源:互联网 发布:洞主手工皂淘宝在哪 编辑:程序博客网 时间:2024/05/22 04:43
1.HAProxy简介
HAProxy是一个开源的,高性能的,基于TCP(四层),HTTP(七层)应用的负载均衡软件。那HAproxy作为一个专业的负载均衡软件,它的优点如下:
.可靠性和稳定性非常好,可以与硬件级F5负载均衡设备相媲美
.最高可同时维护40000-50000个并发连接,单位时间内最大请求数为20000个,最大数据处理能力可达10Gbps
.支持多于8种负载均衡算法,同时支持会话保持
.支持虚拟主机功能
.从1.3版本后支持拒绝连接,全透明代理,这些功能是其它的负载均衡所不具备的
.HAPRoxy拥有一个强大的服务器状态监控页面,通过此页面可实时了解系统状况
.HAproxy拥有功能强大的ACL支持,给使用上带来很大方便
HAProxy是借助于操作系统的技术特性来实现性能最大化的,因此,在使用haproxy时对操作系统的性能调优是非常重要的
2.安装
前往HAProxy官网下载地址http://www.haproxy.org/
官网目前最新稳定版1.7.8版本下载地址
http://www.haproxy.org/download/1.7/src/haproxy-1.7.8.tar.gz
tar zxvf haproxy-1.7.8.tar.gzcd haproxy-1.7.8make TARGET=linux26 PREFIX=/usr/local/haproxymake install PREFIX=/usr/local/haproxymkdir /usr/local/haproxy/confcp examples/option-http_proxy.cfg /usr/local/haproxy/haproxy.cfg
3.为了大家能够看懂整个配置文件,我将贴出我的配置文件内容,里面会有注释帮助大家理解
## demo config for Proxy mode# global maxconn 20000#设定HAProxy进程可接受的最大并发数ulimit-n41000#linux命令行选项,等同于上参数 log 127.0.0.1 local0#全局的日志中配置,local0 是日志设备 info(err,warnig,minfo,debug)为日志级别,使用rsyslog uid 200 gid 200#用户和组 ,可以用uid,gid代替 chroot /var/emptynbproc1#HAProxy启动时可创建的进程数,配合daemon参数使用,默认只启动一个进程,该值应小于cpu核数。 daemon#进程后台运行,(推荐模式)defaultsmodehttp#实例的默认运行模式retries3#连接后端服务器的失败重试次数timeoutconnect10s#连接服务器的最长等待时间,默认单位为毫秒,可使用其它时间单位timeoutclient20s#连接客户端发送数据时最长等待时间,默认单位为毫秒,可使用其它时间单位timeoutserver30s#服务器回应给客户端数据发送的最长等待时间,默认单位为毫秒,可使用其它时间单位timeoutcheck5s#对后端服务器的检查超时时间,默认单位为毫秒,可使用其它时间单位listenadmin_statsbind*:9188#设置监控页面的访问地址,该地址表示为监听本机所有地址的9188端口modehttplogglobal#使用全局日志statsrefresh 30s#监控页面自动刷新时间statsuri /haproxy-status#uri的访问后缀statsrealm welcome login\ Haproxy#文本提示信息statsauthadmin:admin~!@#统计页面的用户名和地址,每行一个statshide-version#隐藏统计页面的HAProxy的版本信息statsadmin if TRUE#可手工启动或禁用后端真实服务器,仅在1.4.9版本后有效frontend test-proxybind*:80#定义监听地址 mode http log global option httplog#启用日志记录optionforwardfor#获取客户端真实ip。通过日志“X-Forwarded-For”查看optionhttpclose#HAProxy在完成一次请教请求连接后,将主动关闭该连接,对性能非常有帮助 option dontlognull option nolinger option http_proxy maxconn 8000 timeout client 30s# layer3: Valid users#acl allow_host src 192.168.200.150/32acl allow_host src 192.168.10.0/24#acl 控制,运行192.168.10.0/24网段的访问请求#acl使用方法如下#acl 自定义acl名称 acl方法 -i [ 匹配的路径或文件 ]#acl allow_host src 0.0.0.0/24http-request deny if !allow_host#拒绝连接请求除allow_host外# layer7: prevent private network relaying#acl forbidden_dst url_ip 192.168.0.0/24#acl forbidden_dst url_ip 172.16.0.0/12acl forbidden_dst url_ip 192.168.20.0/24http-request deny if forbidden_dstdefault_backend test-proxy-srvbackend test-proxy-srvmode httptimeout connect 5stimeout server 5sretries 2optionredispatch#应用于cookie保持的环境optionabortonclose#自动结束长时间连接option nolingeroption http_proxy#optionhttpchkGET /index.phpbalanceroundrobincookieSERVERIDserver web1192.168.10.101:8080cookieserver1 weight 6 check inter 2000 rise 2 fall 3#后端服务器真实地址server web2192.168.10.101:8888cookieserver2weight 6 check inter 2000 rise 2 fall 3# layer7: Only GET method is validacl valid_method method GETacl valid_methodmethod POSThttp-request deny if !valid_method# layer7: protect bad replyhttp-response deny if { res.hdr(content-type) audio/mp3 }
4.启动
haproxy的启动在安装目录下的sbin下
haproxy -f /usr/local/haproxy.cfg
5.启动时遇到常见的错误
in multi-process mode, stats will be limited to process assigned to the current request.
listen需要运行在单个进程内,需要指定默认进程,如果想解决此问题,可将全局参数nbproc设置为1
Proxy 'admin_stats': stats admin will not work correctly in multi-process mode.
[./haproxy.main()] FD limit (16384) too low for maxconn=20000/maxsock=40014. Please raise 'ulimit-n' to 40014 or more to avoid any trouble.
请设置参数ulimit-n 的值等于maxconn的2倍
6.到此haproxy的简单负载均衡配置就设置完毕了,可通过ACL来控制7层的请求控制。
- 千万级高并发负载均衡HAProxy安装及使用示例
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- HAproxy – 千万级并发负载均衡软件 (实测)
- 千万级并发HAproxy均衡负载系统介绍
- HAproxy研究与应用(千万级并发、负载均衡)
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- 千万级并发HAproxy均衡负载系统介绍
- haproxy安装.负载均衡
- 负载均衡工具haproxy安装,配置,使用
- 负载均衡工具haproxy安装,配置,使用
- 负载均衡工具haproxy安装,配置,使用
- 负载均衡工具haproxy安装,配置,使用
- Golang中参数传递详解
- 关于String里面format问题记录
- pdf突然全部变成KWPS.PDF.9
- Golang工程自动创建脚本
- Android自动化测试-Monkey性能测试
- 千万级高并发负载均衡HAProxy安装及使用示例
- 火狐浏览器所有历史版本下载地址
- 多线程下的单例
- Appium python client 网络连接相关 api 用法
- Maven-介绍
- SpringMVC的@@ModelAttribute的用法
- HTML空格占位符[转]
- hadoop启动步骤
- Codeforces Round #425 (Div. 2)