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


HAproxy部署(七层负载)_第1张图片

启动:/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

HAproxy部署(七层负载)_第2张图片

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

10.配置syslog日志

Syslog日志是一个系统记录工具,它在服务器、网络设备和其他支持它的系统上提供了一种标准的方式来收集和记录事件信息。Syslog具有以下几个关键作用:监控和诊断,安全审计,合规性要求,性能优化,趋势分析,自动化报警,跨设备管理

touch /etc/rsyslog.d/haproxy.conf

Vim /etc/rsyslog.d/haproxy.conf

在文件添加:

$ModLoad imudp





$UDPServerRun 514

$FileCreateMode 0644  #日志文件的权限

$FileOwner root  #日志文件的owner

local0.*     /var/log/haproxy.log  #local0接口对应的日志输出文件

local1.*     /var/log/haproxy_warn.log  #local1接口对应的日志输出文件

重启systemctl restart rsyslog

Cd /var/log

你可能感兴趣的:(服务器,linux,运维)