HAproxy部署(七层负载)

HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上,HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。

HAproxy的特性:采用单线程、事件驱动、非阻塞模型,大量精细的性能优化。

适用于高并发的场合

配置过程如下:

一台haproxy,两台web,一台客户机

  1. 基本配置:配置本地yum源,关闭防火墙等
  2. 配置ip

Haproxy:192.168.112.160

Web1:192.168.112.161

Web2:192.168.112.162

客户机:192.168.112.163

3.编译安装HAproxy

​
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz
tar xf haproxy-1.7.2.tar.gz
cd haproxy-1.7.2/
make PREFIX=/usr/local/haproxy TARGET=linux2628
make install PREFIX=/usr/local/haproxy

4.建立配置文件

  • 从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”

步骤:cd /usr/local/haproxy/sbin

Cd ~

Mkdir /etc/haproxy

Cd -

Cd ~/haproxy-1.7.2

Ls查看一下 cd到examples

Ls查看一下是否有init.haproxy文件,vim进入文件

此字段就是配置文件路径

  • 在/root/haproxy-1.7.2/examples下查看是否有haproxy配置文件,若没有,手动创建一个配置文件

Vim /etc/haproxy/haproxy.cfg

写入:

global #全局属性

    daemon  #以daemon方式在后台运行

    maxconn 256  #最大同时256连接

    pidfile /home/ha/haproxy/conf/haproxy.pid  #指定保存HAProxy进程号的文件





defaults #默认参数

    mode http  #http模式

    timeout connect 5000ms  #连接server端超时5s

    timeout client 50000ms  #客户端响应超时50s

    timeout server 50000ms  #server端响应超时50s





frontend http-in #前端服务http-in

    bind *:8080  #监听8080端口

    default_backend servers  #请求转发至名为"servers"的后端服务





backend servers #后端服务servers

    server server1 192.168.112.161:8000 maxconn 32  #backend servers中有一个后端服务,名字叫server1,起在本机的8000端口,HAProxy同时最多向这个服务发起32个连接,此实验中我们使用两个web服务器,则需要两个此字段

server server2 192.168.112.162:8000 maxconn 32

5.优化——建立启动配置文件

cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxyd

Vim /etc/init.d/haproxy

修改: 35行 内容为

BIN=/usr/local/haproxy/sbin/$BASENAME

给予脚本权限:

chmod +x /etc/init.d/haproxyd
chkconfig --add /etc/init.d/haproxy

6.设置haproxy开机自启

systemctl daemon-reload
systemctl enable haproxy
chkconfig --level 35 haproxy on
Chkconfig --list


启动:/etc/init.d/haproxy start

查看一下是否开启:systemctl status haproxy

#重启之后如果显示第26行期待表达式,可查看一下26行的变量是否有定义,若没有,无必要时可#注释掉

7.web服务器

安装httpd

Yum -y install httpd

启动httpd:systemctl start httpd

Web1:echo web1 > /var/www/html/index.html

Web2:echo web2 > /var/www/html/index.html

#用于轮询测试

8.客户机测试

Curl HaproxyIP,看是否可以轮询web1和web2

9.七层负载状态检查

Vim /etc/haproxy/haproxy.cfg

在文件最后添加:

listen stats    #定义监控页面    

bind *:1080                   #绑定端口1080    

stats refresh 30s             #每30秒更新监控数据    

stats uri /stats              #访问监控页面的uri(可按需更改,更改后访问监控页面时后缀也要更改为同样的)    

stats realm HAProxy\ Stats    #监控页面的认证提示    

stats auth admin:admin        #监控页面的用户名和密码(需要修改)

重新启动 systemctl restart haproxy

访问监控页面:192.168.112.160:080/stats

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值