1、haproxy介绍html
HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点一般又须要会话保持或七层处理。HAProxy运行在当前的硬件上,彻底能够支持数以万计的并发链接。而且它的运行模式使得它能够很简单安全的整合进您当前的架构中, 同时能够保护你的web服务器不被暴露到网络上。linux
haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen。web
2、安装haproxyredis
去haproxy下载源码包上传到服务器或者wget算法
而后解压vim
[root@mymaster yasuobao]# tar -zxvf haproxy-2.0.1.tar.gz [root@mymaster yasuobao]# cd haproxy-2.0.1
编译[root@mymaster yasuobao]# make TARGET=linux31
后端
这里TARGET参数视centos版本而定,uname -r查看系统版本centos6.X须要使用TARGET=linux26 centos7.x使用linux31
安装centos
[root@mymaster yasuobao]# make install PREFIX=/usr/local/haproxy
浏览器
建立conf目录[root@mymaster yasuobao]# mkdir /usr/local/haproxy/conf
安全
复制文件
[root@mymaster yasuobao]# cp examples/option-http_proxy.cfg /usr/local/haproxy/conf/haproxy.cfg [root@mymaster yasuobao]# cd /usr/local/haproxy/conf
编辑配置文件
[root@mymaster conf]# vim haproxy.cfg
字段含义以下
global # 全局参数的设置 log 127.0.0.1 local0 info # log语法:log <address_1>[max_level_1] # 全局的日志配置,使用log关键字,指定使用127.0.0.1上的syslog服务中的local0日志设备,记录日志等级为info的日志 maxconn 4096 #最大链接数 user nobody #所属用户 group nobody #所属组 daemon #以守护进程方式运行haproxy nbproc 1 #指定启动的haproxy进程的个数,只能用于守护进程模式的haproxy,默认为1 pidfile /usr/local/haproxy/logs/haproxy.pid #指定pid文件生成目录 defaults mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK retries 3 # 定义链接后端服务器的失败重连次数,链接失败次数超过此值后将会将对应后端 timeout connect 10s #链接超时 timeout client 20s #客户端超时 timeout server 30s #服务器端超时 timeout check 5s #检测超时 frontend www bind *:80 #监听地址为80 mode http option httplog #启用记录HTTP请求、会话状态和计时器的功能 option forwardfor #容许在发往服务器的请求首部中插入“X-Forwarded-For”首部。 option httpclose #每次请求完毕后主动关闭http通道 log global #启用事件和流量日志 default_backend htmpool #默认后端 backend htmpool mode http option redispatch # 当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证会话的SESSION持久性;而此时,若是后端的服 务器宕掉了, 可是客户端的cookie是不会刷新的,若是设置此参数,将会将客户的请求强制定向到另一个后端server上,以保证服务的正常。 option abortonclose #丢弃因为客户端等待时间过长而关闭链接但仍在haproxy等待队列中的请求 balance static-rr #负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数) cookie SERVERID #容许插入serverid到cookie中,serverid后面能够定义 option httpchk GET /index.html server myslave02 172.18.74.87:80 cookie 2 weight 3 check inter 2000 rise 2 fall 3 #cookie 1表示serverid 为1,check inter 1500 是检测心跳频率,rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight表明权重 server myslave 172.18.74.119:80 cookie 1 weight 3 check inter 2000 rise 2 fall 3 listen admin_stats bind 0.0.0.0:9188 #监听端口 mode http log 127.0.0.1 local0 err #全局的日志配置,local0 是日志设备,err 表示日志级别。其中日志级别有err、 warning、info、debug 四种可选。这个配置表示使用 127.0.0.1 上的 rsyslog 服务中的local0 日志设备,记录日志等级为err。 stats refresh 30s #统计页面自动刷新时间 stats uri /haproxy-status #统计页面url stats realm welcome login\ Haproxy #统计页面密码框上提示文本 stats auth admin:admin123 #统计页面用户名和密码设置 stats hide-version #隐藏统计页面上HAProxy的版本信息 stats admin if TRUE #经过设置此选项,能够在监控页面上手工启用或禁用后端真实服务器,仅在haproxy1.4.9 之后版本有效
启动haproxy
[root@mymaster conf]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
而后在后端服务器编辑index.html
[root@myslave html]# cat index.html this is 119 html [root@myslave02 html]# cat index.html this is 87 html
curl检查haproxy是否正常工做
浏览器访问172.18.74.59:9188/haproxy-status,用户名admin,密码admin123,登录。能够看到haproxy的工做状态