使用Haproxy搭建web集群

[复制链接]

826

主题

826

帖子

446

积分

中级会员

Rank: 3Rank: 3

积分
446
分享到:
发表于 2022-5-5 11:36:17 | 显示全部楼层 |阅读模式
常见的web集群调度器目前常见的web集群调度器分为软件和硬件,软件通常使用开源的LVS,Haproxy,Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼,绿盟等Haproxy应用分析LVS在企业应用中抗负载能力很强,但存在不足
LVS不支持正则处理,不能实现动静分离
对于大型网站,LVS的实施配置复杂,维护成本相对较高
Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理的软件
特别适用于负载特别大的web站点
运行在当前的硬件上可支持数以万计的并发连接连接请求
Haproxy调度算法原理
RR:最简单常用的,轮询调度
LC:最小连接数算法,根据后端的节点连接数大小动态分配前端请求
SH:来源访问调度算法,用于有session会话记录在服务器端,可以基于来源ip,cookie做群集调度
实验环境Haporxy服务器 192.168.13.175
web1服务器 192.168.13.151
web2服务器 192.168.13.176
客户端测试机  win7
1,在web1,web2服务器上安装Nginx
[root@web1 ~]# yum install -y \  ##安装环境需要组件包> pcre-devel \  ##开发包> zlib-devel \   ##压缩包> gcc \> gcc-c++ \> make [root@web1 ~]# useradd -M -s /sbin/nologin nginx  ##创建系统用户[root@web1 ~]# mkdir /abc   ##创建挂载点[root@web1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/    ##挂载Password for root@//192.168.100.3/LNMP-C7:  [root@web1 ~]# cd /abc/[root@web1 abc]# tar zxvf nginx-1.12.2.tar.gz -C /opt   ##解压[root@web1 abc]# cd /opt/nginx-1.12.2/[root@web1 nginx-1.12.2]# ./configure \   ##进行配置> --prefix=/usr/local/nginx \> --user=nginx \> --group=nginx[root@web1 nginx-1.12.2]# make && make install[root@web1 nginx-1.12.2]# echo "this is kgv web" > /usr/local/nginx/html/test.html##创建站点网页内容,web2上为this is accp web[root@web1 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  ##便于系统识别[root@web1 nginx-1.12.2]# nginx -t  ##检查语法[root@web1 nginx-1.12.2]# nginx    ##开启服务[root@web1 nginx-1.12.2]# systemctl stop firewalld.service   ##关闭防火墙[root@web1 nginx-1.12.2]# setenforce 02,在haproxy服务器上安装haproxy调度服务
[root@haproxy ~]# yum install -y \  ##安装环境组件工具> pcre-devel \> bzip2-devel \> gcc \> gcc-c++ \> make[root@haproxy ~]# systemctl stop firewalld.service   ##关闭防火墙[root@haproxy ~]# setenforce 0[root@haproxy ~]# mkdir /abc[root@haproxy ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/  ##挂载[root@haproxy ~]# cd /abc/[root@haproxy abc]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/  ##解压[root@haproxy abc]# cd /opt/haproxy-1.5.19/[root@haproxy haproxy-1.5.19]# make TARGET=linux26  ##编译[root@haproxy haproxy-1.5.19]# make install ##安装[root@haproxy haproxy-1.5.19]# mkdir /etc/haproxy   ##创建配置文件目录[root@haproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/  ##模板复制到配置目录下[root@haproxy haproxy-1.5.19]# cd /etc/haproxy/[root@haproxy haproxy]# vim haproxy.cfg   ##编辑配置文件----------删除所有listen项目,并添加------------------------------------注释以下语句chroot /usr/share/haproxyredispatch添加listen  webcluster 0.0.0.0:80                option httpchk GET /test.html  ##web网页                balance roundrobin  ##轮询                server inst1 192.168.13.151:80 check inter 2000 fall 3  ##健康检查请求三次                server inst2 192.168.13.176:80 check inter 2000 fall 3[root@haproxy haproxy]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy ##启动文件[root@haproxy haproxy]# chmod +x /etc/init.d/haproxy   ##执行权限[root@haproxy haproxy]# chkconfig --add /etc/init.d/haproxy   ##添加到service[root@haproxy haproxy]# ln -s /usr/local/sbin/haproxy /usr/sbin/  ##便于系统识别[root@haproxy haproxy]# service haproxy start   ##开启服务Starting haproxy (via systemctl):                          [  确定  ][root@haproxy haproxy]# netstat -ntap | grep haproxy  ##查看端口tcp      0     0 0.0.0.0:80       0.0.0.0:*       LISTEN      39884/haproxy 3,使用使用测试机测试网页

4,日志定义,修改haproxy配置文件
[root@haproxy haproxy]# vim /etc/haproxy/haproxy.cfg  ##修改配置文件global                log /dev/log    local0 info   ##添加两个级别的日志文件                log /dev/log    local0 notice                #log loghost    local0 info[root@haproxy haproxy]# service haproxy restart  ##重启服务[root@haproxy haproxy]# touch /etc/rsyslog.d/haproxy.conf  ##创建系统日志haproxy配置文件[root@haproxy haproxy]# vim /etc/rsyslog.d/haproxy.confif ($programname == 'haproxy' and $syslogseverity-text == 'info')  ##根据级别创建不同的日志文件then -/var/log/haproxy/haproxy-info.log&~if ($programname == 'haproxy' and $syslogseverity-text == 'notice')then -/var/log/haproxy/haproxy-notice.log&~[root@haproxy haproxy]# systemctl restart rsyslog.service  ##重启系统日志服务[root@haproxy haproxy]# cd /var/log/  ##此时是没有haproxy日志##重新访问网页[root@haproxy haproxy]# cd /var/log/haproxy/[root@haproxy haproxy]# ls   ##此时就生成了info级别的日志文件haproxy-info.log
云专线_海外IDC http://www.vecloud.com/

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表