Haproxy搭建web群集——(实践!)
admin
2023-02-25 01:00:08
0

常见的web集群调度器

目前常见的web集群调度器分为软件和硬件,软件通常使用开源的LVS,Haproxy,Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼,绿盟等

Haproxy应用分析

LVS在企业应用中抗负载能力很强,但存在不足

LVS不支持正则处理,不能实现动静分离
对于大型网站,LVS的实施配置复杂,维护成本相对较高

Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理的软件

特别适用于负载特别大的web站点
运行在当前的硬件上可支持数以万计的并发连接连接请求

Haproxy调度算法原理

RR:最简单常用的,轮询调度
LC:最小连接数算法,根据后端的节点连接数大小动态分配前端请求
SH:来源访问调度算法,用于有session会话记录在服务器端,可以基于来源ip,cookie做群集调度

实验拓扑图

Haproxy搭建web群集——(实践!)

实验环境

Haporxy服务器 192.168.13.175
web1服务器 192.168.13.151
web2服务器 192.168.13.176
client测试机

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 0

2,在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/haproxy
redispatch
添加
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,使用client测试网页

Haproxy搭建web群集——(实践!)
Haproxy搭建web群集——(实践!)

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.conf
if ($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

谢谢阅读!!

相关内容

热门资讯

“725上凯道游行”靠游览车动... 海峡导报综合报道 国民党全代会今天(25日)上午登场,紧接着下午即进行“725反毒油凯道抗议游行”。...
超过阿里巴巴和美团,携程为何挨... 2026年7月,市场监管总局对携程集团有限公司滥用市场支配地位行为作出行政处罚决定,责令携程停止违法...
夺取全年粮食丰收有较好基础(权... 本报记者 郁静娴“农业农村经济保持稳中向好的良好势头,为国民经济延续总体平稳、向新向优的态势提供有力...
山西洪洞发生黄土崩塌,致5人死... 今天(25日)上午,记者从山西省洪洞县应急管理局获悉,洪洞县好义村黄土崩塌受困人员已全部找到。其中,...
瑞尔塔完成核聚变装置内直接能量... (来源:电力国际汇epintl) 六月早些时候,《聚变能源报道》曾刊发过瑞尔塔聚变公司(Realta...
中海油服获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示中海油服(601808)新获得一项发明专利授权,专利名为“一种...
特朗普:301关税正式接棒,已... 据凤凰卫视报道,特朗普24日在白宫回应多项议题,强调最高法院推翻旧关税法源后,政府已改采新的法律依据...
夫妇雨天出门疑被电身亡,现场有... 7月24日,新京报记者多方核实获悉,陕西宝鸡永清村22日晚突发雷暴雨,一对中年夫妇雨天在村中道路疑被...
游戏掌机存储卡推荐:三星 T7... 当游戏加载条变短、4K视频秒录、掌机库一键随行——存储不该是妥协的理由。 三星T7,1TB大容量m...
宇树科技创始人兼CEO王兴兴登... 王兴兴登上时代封面。 当地时间7月23日,宇树科技创始人兼CEO王兴兴与其载人机甲产品GD01共同登...