千家信息网

Haproxy搭建Web群集——实战篇

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,实验要求:1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;2.三台服务器为CentOS 7.3的64位系统;3.所有主机网卡都设置成仅主机模式,绑定静态地
千家信息网最后更新 2026年11月02日Haproxy搭建Web群集——实战篇

实验要求:

1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;

2.三台服务器为CentOS 7.3的64位系统;

3.所有主机网卡都设置成仅主机模式,绑定静态地址;

4.客户端可以通过访问调度服务器,访问到两台节点服务器,不需要访问真实服务器地址

主机角色IP地址
centos7-1Haproxy服务器192.168.1.10
centos7-2Nginx服务器1192.168.1.20
centos7-3Nginx服务器2192.168.1.30
win 7windows7客户端192.168.1.40

实验步骤:

1、搭建两台Nginx服务器

安装环境包及nginx

[root@nginx1 mnt]# yum -y install \gcc \gcc-c++ \zlib-devel \pcre pcre-devel \expat-devel [root@nginx1 mnt]# useradd -M -s /sbin/nologin nginx           #建立管理用户[root@nginx1 mnt]# tar zxvf nginx-1.12.0.tar.gz -C /opt/[root@nginx1 nginx-1.12.0]# ./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx[root@nginx1 nginx-1.12.0]# make && make install            #编译安装[root@nginx1 nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/[root@nginx1 nginx-1.12.0]# vim /usr/local/nginx/html/test.html            #编写首页

ACCP web!!!!!!!!!!!!!!!!!

编写启动脚本

[root@nginx1 nginx-1.12.0]# vim /etc/init.d/nginx            #方便service调取#!/bin/bashwenjian="/usr/local/nginx/sbin/nginx"pid="/usr/local/nginx/logs/nginx.pid"case $1 instart)    $wenjian ;;stop)    kill -s QUIT $(cat $pid) ;;restart)    $0 stop    $0 start;;reload)    kill -s HUP $(cat $pid) ;;*)    echo "Please,try again"    exit 1 ;;esacexit 0[root@nginx1 nginx-1.12.0]# chmod +x /etc/init.d/nginx #开服务[root@nginx1 nginx-1.12.0]# service nginx start[root@nginx1 nginx-1.12.0]# systemctl stop firewalld.service [root@nginx1 nginx-1.12.0]# setenforce 0#改静态[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@nginx1 nginx-1.12.0]# systemctl restart nework

2、搭建Haproxy调度服务器

安装环境包及haproxy

#改静态[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@nginx1 nginx-1.12.0]# systemctl restart nework##安装环境包[root@haproxy mnt]# yum -y install gcc gcc-c++ bzip2-devel pcre pcre-devel#安装haproxy[root@nginx1 ~]# mount.cifs //192.168.10.71/rpm /mnt/[root@localhost mnt]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/[root@localhost mnt]# cd /opt/haproxy-1.5.19/#源码编译、安装[root@localhost haproxy-1.5.19]# make TARGET=linux26     ##编版本为Linux内核版本(使用uname -a查看)[root@localhost haproxy-1.5.19]# make install

修改配置文件

root@localhost haproxy-1.5.19]# mkdir /etc/haproxy         #创建配置文件站点[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/       #复制模板[root@localhost haproxy-1.5.19]# vim /etc/haproxy/haproxy.cfg     #修改配置文件chroot /usr/share/haproxy            #(默认家目录)删除该行,文件实际并不存在redispatch      #将请求发给故障节点(没啥用关掉)-------------------------listen段全部删除-------------------------------------------------------##添加listen webcluster 0.0.0.0:80        option httpchk GET /test.html            # 开启对后端服务器的健康检测(这里是提交test测试页面)#POST   使用加密方式提交参数;GET   使用明文方式直接提交参数,参数显示在url上        balance roundrobin            #负载均衡采用轮询算法        server inst1 192.168.1.20:80 check inter 2000 fall 3      #定义在线节点1          server inst2 192.168.1.30:80 check inter 2000 fall 3      #定义在线节点2

定义启动脚本

#定义启动脚本[root@localhost haproxy-1.5.19]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy [root@localhost haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy      ##添加进启动列表[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/#启服务[root@localhost haproxy-1.5.19]# service haproxy start[root@localhost haproxy-1.5.19]# systemctl stop firewalld.service [root@localhost haproxy-1.5.19]# setenforce 0

实验结果

使用客户端访问Haproxy服务器,调度服务器将对后端web服务器进行调度访问

此时,Haproxy服务器会将访问日志写进系统日志中,这对维护人员非常不友好。因此,我们需要单独对haproxy的日志进行分割。

配置haproxy配置文件

位置:/etc/rsyslog.d/haproxy.conf

#重启haproxy 服务[root@haproxy etc]# service haproxy restart Restarting haproxy (via systemctl):                        [  确定  ]#创建[root@haproxy haproxy-1.5.19]# touch /etc/rsyslog.d/haproxy.conf[root@haproxy haproxy-1.5.19]# vim /etc/rsyslog.d/haproxy.conf#定义haproxy信息日志if ($programname == 'haproxy' and $syslogseverity-text == 'info')then -/var/log/haproxy/haproxy-info.log&~#定义haproxy通知日志if ($programname == 'haproxy' and $syslogseverity-text == 'notice')then -/var/log/haproxy/haproxy-notice.log&~#重启日志服务[root@haproxy etc]# systemctl restart rsyslog.service#切换到日志目录下查看haproxy日志文件[root@haproxy etc]# cd /var/log/haproxy/[root@haproxy haproxy]# lshaproxy-info.log#查看日志文件[root@haproxy haproxy]# cat haproxy-info.logNov 30 16: 53: 30 Haproxy haproxy[119165]: 192.168.100.50: 49191 [30/Nov/2019:16:53: 30.100webcluster. webcluster/inst2 168/0/1/0/169 200 252 - - --- 1/1/0/1/0 0/0 "GET/test.html HTTP/1.1"Nov 30 16: 53:42 Haproxy haproxy[119165]: 192.168.100.50: 49191[ 30/Nov/2019:16:53:42.290 :webcluster. webcluster/inst1 159/0/0/0/159 200 253 - - ---- 1/1/0/1/0 0/0 "GET /test.html HTTP/1.1 "
服务 服务器 日志 文件 调度 配置 客户 客户端 节点 主机 参数 地址 环境 脚本 静态 实验 方式 版本 目录 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 国智互联网科技 互联网科技财经 互联网是不是新科技 为想互联网科技 互联网科技公司官网 艾特科技互联网 长亮科技 互联网金融 互联网前沿科技 互联网科技创新企业排名 恒生科技互联网指数分析 速维有品互联网信息科技(苏州)有限公司 青海科技产业互联网发展 广州新华互联网科技学校电竞方面 互联网科技和法律行业 互联网数据科技专业 杭州披云加互联网科技有限公司 领航科技大厦互联网公司 玉溪新华互联网科技怎么选 杭州融税互联网科技有限公司 国智互联网科技 中国互联网科技股 成都互联网科技公司 互联网科技logo设计 中盈科技互联网信息有限公司 互联网为啥属于高科技 消费医药和互联网科技 西安小鹰速贷互联网科技有限公司 互联网科技公司营业执照怎么办理 互联网科技创新方面的资料
0