天天看点

haproxy(简称HA,web负载均衡)

haproxy(简称HA)

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案

<a href="http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz">http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz</a>

# tar zcvf haproxy-1.3.20.tar.gz

# cd haproxy-1.3.20

# vi Makefile

PREFIX = /usr/local/haproxy   (原为PREFIX = /usr/local)

:wq

# make TARGET=linux26

# make install

haproxy应用时有2种方式,linsten方式和frontend+backend方式

方式一(listen):

# vi /usr/local/haproxy/haproxy.cfg

global

log 127.0.0.1 local0

maxconn 4096

chroot /usr/local/haproxy

uid 99 

gid 99 

daemon

nbproc 1

pidfile /usr/local/haproxy/haproxy.pid

defaults

log global

log 127.0.0.1 local3 

option httplog 

option httpclose

option dontlognull

option forwardfor

option redispatch

retries 2 

maxconn 2000

mode http 

stats uri /haproxy-status 

stats auth ming:123456

stats refresh 30s

monitor-uri /site_status

contimeout 5000

clitimeout 50000

srvtimeout 50000

listen web 192.168.1.10:1080

balance roundrobin 

server yang 192.168.1.10:80 check 

server ming 192.168.1.12:80 check

方式二(frontend+backend):

frontend web 192.168.1.10:1080        

default_backend aa   

backend aa  

balance roundrobin     

server yang  192.168.1.10:80 check   

server  ming  192.168.1.12:80 check

启动haproxy

# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

开机自启动:

# vi /etc/rc.local

 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

查看haproxy页面:

用户名:ming   密码:123456

验证效果:

在2主机上分别建2个页面1.html  内容写各自主机ip

<a href="http://192.168.1.10:1080/1.html">http://192.168.1.10:1080/1.html</a>

第一次会显示192.168.1.10

第二次会显示192.168.1.12

注:

1、1080是haproxy的端口号,是随意写的,可改

3、电脑重启后/etc/init.d/httpd 会被改为/etc/init.d/httpd.rpmorig ,要自己改回来,chkconfig开机启动命令也要再重写一遍,原因不详

附:

global:参数是进程级的,通常和操作系统(OS)相关

defaults:配置默认参数,这些参数可以被利用配置到frontend,backend,listen组件

frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)

backend:后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器

listen:Frontend和Backend的组合体

log 127.0.0.1 local0             使用系统的syslog记录日志

maxconn 4096                     限制单个进程的最大连接数

option redispatch                 在连接失败或断开的情况下,允许当前会话被重新分发

retries 2                             设置在一个服务器上链接失败后的重连次数

balance roundrobin            设置服务器分配算法为轮询(即交替访问)

option dontlognull              不记录空连接

contimeout 5000               设置等待连接到服务器成功的最大时间

clitimeout 50000              设置客户端的最大超时时间

srvtimeout 50000              设置服务器端的最大超时时间

nbproc 1                          指定作为守护进程运行的时候,要创建多少个进程,默认只创建一个,需要daemon开启模式

daemon                            让进程在后台运行,即作为守护进程运行,正式运行的时候开启,此处先禁止,等同于在命令行添加参数 -D

debug                             设置debug模式运行,与daemon模式互斥,等同于在命令行添加参数 -d

1080                                监听端口(随意)

mode http                         http的7层模式

stats refresh 30s                 统计页面自动刷新时间

stats uri /haproxy-stats          统计页面URL

stats realm Haproxy\ Statistics             统计页面密码框上提示文本

stats auth ming:123456               统计页面用户名和密码设置

stats hide-version                      隐藏统计页面上HAProxy的版本信息

monitor-uri /site_status         网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回500

weight  -- 调节服务器的负重

check -- 允许对该服务器进行健康检查

inter  -- 设置连续的两次健康检查之间的时间,单位为毫秒(ms),默认值 2000

rise  -- 指定多少次连续成功的健康检查后,即可认定该服务器处于可操作状态,默认值 2

fall  -- 指定多少次不成功的健康检查后,认为服务器为当掉状态,默认值 3

balance roundrobin     简单的轮询

balance source           根据请求的源IP 

balance uri                根据请求的url

balance url_param     根据请求RUL中的参数

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/865706如需转载请自行联系原作者

yangzhimingg

上一篇: httpdns

继续阅读