Haproxy搭建Web群集——实战篇
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,实验要求:1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;2.三台服务器为CentOS 7.3的64位系统;3.所有主机网卡都设置成仅主机模式,绑定静态地
千家信息网最后更新 2025年12月03日Haproxy搭建Web群集——实战篇
实验要求:
1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;
2.三台服务器为CentOS 7.3的64位系统;
3.所有主机网卡都设置成仅主机模式,绑定静态地址;
4.客户端可以通过访问调度服务器,访问到两台节点服务器,不需要访问真实服务器地址
| 主机 | 角色 | IP地址 |
|---|---|---|
| centos7-1 | Haproxy服务器 | 192.168.1.10 |
| centos7-2 | Nginx服务器1 | 192.168.1.20 |
| centos7-3 | Nginx服务器2 | 192.168.1.30 |
| win 7 | windows7客户端 | 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 nework2、搭建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安全错误
数据库的锁怎样保障安全
网络安全法第65条是什么
网络安全工程师有哪些岗位
网络技术主任师职责
彩讯股份是不是软件开发
网络安全幼儿教育教案
什么是网络安全管理与配置
国内的软件开发培训
5层网络安全体系的意义
苹果watch服务器连接失败
h3c服务器怎么启动u盘重装
口碑好的软件开发贵吗
oracle跨数据库复制
用友数据库笔试题
服务器管理需要了解什么软件
个人热点网络安全密钥忘了
时间源服务器是什么
网络安全课程编码
沭阳租房网络安全
软件开发行业账务处理科目设置
注意网络安全问题有哪些问题
网站域名查询网站云服务器
1000人论坛服务器大概多少钱
工业数据库有哪些
软件开发需要遵守的原则
深圳鹓雏互联网科技有限公司
连接后台数据库的框架
嘉兴软件开发驻场服务费
计算机网络技术和什么相结合
网络安全公众目标
各国各产业占gdp比重数据库
