首页 > 代码库 > haproxy 基本应用

haproxy 基本应用



haproxy是一种免费、可靠的解决方案 。用于提供高可用、负载均衡和代理服务,尤其适用于高负载且需要持久连接或7层处理机制的web站点

下面从其基本配置,开启日志功能,统计页面输出相关配置,基于ACL实现动静分离 来演示其功能



haproxy基本配置

haproxy

172.16.15.17
vip (eth1)192.168.20.1
node1192.168.20.11
node2192.168.20.12


haproxy 配两个块网卡

后端两台服务器添加网关 指向192.168.20.1 添加主页


编辑配置文件

frontend websrv *:80
        default_backend webservers
backend webservers
        balance roundrobin
        server node1 192.168.20.11:80 check
        server node2 192.168.20.12:80 check




启动haproxy 访问172.16.15.17 轮巡访问到node1和node2的主页



开启日志


配置文件中全局端

log         127.0.0.1 local2

wKioL1NkXiSCzWndAAB-bpYCK4g550.jpg

service rsyslog restart  重启日志服务
service haproxy restart


wKiom1NkXk_zP4hhAAIZ1Q3aPlo367.jpg


如果在frontend 下添加下面内容

 log     127.0.0.1 local3

再进行上面操作 则可为单独个frontend 代理记录日志


统计页面输出相关设置


1、stats enable

不能用在frontend

在backend webservers 下面添加 stats enable

登录 172.16.15.17/haproxy?stats

wKiom1NkadGRYG5OAAFkodcSidE283.jpg

wKioL1NkaaiB70z1AAJc4xDTbks624.jpg



2、stats auth  进行认证

在stats enable下添加 stats auth tom:tom (假如用户名是tom 密码也是tom)

wKioL1Nkap-QuiCTAAJvpAxZbGQ812.jpg



3、stats uri  

如果进一步进行安全设置 更换访问路径 可以用stats uri

在stats enable 下面添加 stats uri /jerry?stats 那么再访问172.16.15.17/haproxy?stats将是404 Not Found

wKiom1NkbIrD3hdWAAOv-YSOzn8352.jpg


4、更改自定义端口

listen  statistics

       bind *:4454

       stats enable

wKioL1NkgWKQmSb7AAGHfztkTA4759.jpg





5、stats version 隐藏版本


listen  statistics
        bind *:4454
        stats enable
        stats uri /jerry?stats
        stats hide-version


wKiom1NkhX3ACo77AADmFKethPw921.jpg



6、stats admin  启用管理接口


wKioL1Nkh6vCX5UsAAEyFdUCoTQ176.jpg




基于ACL实现动静分离

访问静态页面和动态页面分别定向到特定的服务器

先在node1 和node2上都提供静态和动态页面访问文件


node1

wKioL1NkkT-RsS2uAAClVXKLbbs404.jpg

node2

wKiom1NkkWrQ23H8AACcfTm7v8k259.jpg



编辑配置文件

frontend  websrv
        bind *:80
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js .html
    acl host_static      hdr_beg(host) -i img. video. down. ftp. imgs. image. videos.
    acl url_php         path_end        -i .php
    use_backend static          if url_static or host_static
   use_backend dynamic          if url_php
    default_backend             dynamic
ackend static
    balance     roundrobin
    server      node2 192.168.20.12:80  check
ackend dynamic
    balance     roundrobin
    server      node1 192.168.20.11:80  check



根据文件配置 虽然两个后端服务器都提供了动态和静态文件 但是访问静态时由node2来提供 访问动态页面时由node1提供

wKioL1NkkxfwgUNkAACMseRqzaM423.jpg

wKiom1Nkk0HThlEkAABURy5m4Bc117.jpg