global
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend main *:80
acl url_static path_beg -i /static /images /Javascript /stylesheets #新建acl策略 path_beg:以/static /images等开头的访问路径,-i 忽略大小写
acl url_static path_end -i .jpg .gif .png .css .js #新建acl策略 path_end:以.jpg .gif等结尾的访问路径,-i 忽略大小写
use_backend static if url_static #如果匹配url_static这个acl策略,则使用static这个后端
default_backend app #没有任何配置的情况下,使用默认的后端app
backend static
balance roundrobin #轮询访问
server static 192.168.3.128:80 check
backend app
balance roundrobin #轮询访问
server app2 192.168.3.129:80 check
在这里我们新建了几条acl策略,用于实现了
1.当访问以/static /images /javascript /stylesheets开头的路径和.jpg .gif .png .css .js结尾的路径时,指向192.168.3.180这台后端服务器上
2.当没有任何匹配的情况下,指向默认的后端服务器192.168.3.129
我就不贴出访问结果了。
总结:通过上面的两个例子,我们了解了haproxy在负载均衡的强大之处,当然还可以实现mysql的读的负载均衡,至于更高级的功能让我们慢慢去了解吧。
Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
CentOS 6.3下Haproxy+Keepalived+Apache配置笔记