欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > Haproxy搭建Web群集

Haproxy搭建Web群集

2024/10/24 7:29:28 来源:https://blog.csdn.net/m0_73868794/article/details/140267796  浏览:    关键词:Haproxy搭建Web群集

Haproxy 是一款性能出色的负载均衡软件,用于搭建 Web 集群具有很多优势。以下是使用 Haproxy 搭建 Web 集群的一般步骤:

1. 安装 Haproxy

在您的服务器上,可以通过相应的包管理工具进行安装。例如,在基于 Debian 或 Ubuntu 的系统上,可以使用以下命令:

sudo apt-get update
sudo apt-get install haproxy

    2. 配置 Haproxy

Haproxy 的主要配置文件通常是 /etc/haproxy/haproxy.cfg 。以下是一个简单的配置示例:

globallog 127.0.0.1 local0log 127.0.0.1 local1 noticemaxconn 4096defaultslog     globalmode    httpoption  httplogoption  dontlognulltimeout connect 5000timeout client  50000timeout server  50000frontend http_frontbind *:80default_backend http_backbackend http_backserver web1 192.168.1.101:80 checkserver web2 192.168.1.102:80 check

在上述配置中,frontend 部分定义了前端监听的端口和规则,backend 部分定义了后端的服务器列表和健康检查等。

3. 启动 Haproxy 服务

安装和配置完成后,可以使用以下命令启动 Haproxy 服务:

sudo systemctl start haproxy

4. 检查服务状态

可以使用以下命令检查 Haproxy 服务的状态:

sudo systemctl status haproxy

5. 测试负载均衡效果

您可以通过访问 Haproxy 监听的端口,多次刷新页面,观察请求是否被均衡分发到后端的 Web 服务器上。
例如,如果 Haproxy 监听在 80 端口,您可以在浏览器中输入服务器的 IP 地址,多次刷新查看结果。
请注意,以上只是一个简单的示例,实际的生产环境中可能需要更复杂的配置,例如根据 URL 进行路由、设置会话保持、优化性能等。同时,还需要确保后端的 Web 服务器已正确配置和运行。

[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz 
[root@localhost ~]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/
[root@localhost html]# echo "test web01" > test.html[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx		##开启nginx进程
[root@localhost ~]# netstat -anpt | grep nginx

2:编译安装Haproxy

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0[root@localhost ~]# yum -y install pcre-devel bzip2-devel gcc*
[root@localhost ~]# tar zxvf haproxy-1.5.19.tar.gz 
[root@localhost ~]# cd haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# make TARGET=linux26
[root@localhost haproxy-1.5.19]# make install注释:
linux22     for Linux 2.2
linux24     for Linux 2.4 and above (default)
linux24e    for Linux 2.4 with support for a working epoll (> 0.21)
linux26     for Linux 2.6 and above
solaris     for Solaris 8 or 10 (others untested)
freebsd     for FreeBSD 5 to 8.0 (others untested)
openbsd     for OpenBSD 3.1 to 4.6 (others untested)
cygwin      for Cygwin
generic     for any other OS.
custom      to manually adjust every setting

3:Haproxy服务器配置

(1)建立haproxy配置文件

[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/

(2)创建服务脚本

[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy
[root@localhost ~]# chkconfig --add haproxy

(3)Haproxy配置介绍

globallog 127.0.0.1   local0               \\配置日志记录,local0为日志设备,默认是系统日志log 127.0.0.1   local1 notice        \\日志级别为notice#log loghost    local0 info    maxconn 4096                         \\最大连接数uid 99                               \\用户uidgid 99                               \\用户giddaemon                               \\以守护进程的方式运行#debug                               \\调试模式,输出启动信息到标准输出#quiet                               \\安静模式,启动时无输出defaultslog     global                       \\使用globle中定义的日志mode    http                         \\模式为httpoption  httplog                      \\采用http的格式记录日志option  dontlognull                  \\保证HAProxy不记录上级负载均衡发送过来的用于检测状态数据的心跳包retries 3                            \\检查节点连接失败的次数,超过3次认为节点不可用# redispatch                          \\当负载很高时,自动结束当前队列处理比较久的连接maxconn 2000                         \\最大连接数contimeout      5000                 \\连接超时时间msclitimeout      50000                \\客户端超时时间mssrvtimeout      50000                \\服务器超时时间ms
listen  webcluster 0.0.0.0:80                \\定义群集和监听的端口号option  httpchk GET /index.html      \\检查服务器的index.html文件,心跳检测URL设置balance roundrobin                   \\负载均衡的调度算法为轮询server  inst1 192.168.1.61:80 check inter 2000 fall 3        \\定义在线节点server  inst2 192.168.1.62:80 check inter 2000 fall 3   check inter 2000是检测心跳频率(每2000ms检测一次),fall 3是3次失败认为服务器不可用注释:
haproxy共有八种调度算法
1)balance leastconn   最少连接数
2)balance roundrobin  轮询
3)balance source      根据客户端IP进行哈希的方式
4)static-rr    根据权重
5)uri    根据请求的URI
6)url_param    根据请求的URl参数
7)hdr(name)   根据HTTP请求头来锁定每一次HTTP请求
8)rdp-cookie(name)   根据cookie(name)来锁定并哈希每一次TCP请求chroot /usr/share/haproxy  \\也就是改变程序执行时所参考的根目录位置,如果有此代码,需要创建此目录关于日志级别
static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
static Level INFO
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
另外,还有两个可用的特别的日志记录级别: 
static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。

4:启动

[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy start

5:测试web群集

刷新页面进行测试

或使用脚本测试

[root@localhost ~]# for i in $(seq 10); do curl http://192.168.1.60/test.html  ;done

6:Haproxy的日志

编辑/etc/haproxy/haproxy.conf

[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
globallog 127.0.0.1 local3     

编写haproxy日志文件

[root@localhost ~]# vim  /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.*     /var/log/haproxy.log

重启haproxy和rsyslog服务

[root@localhost ~]# systemctl restart rsyslog
[root@localhost ~]# systemctl restart haproxy

访问网站后查看日志

[root@localhost ~]# cat /var/log/haproxy.log

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com