Haproxy搭建Web群集——实战篇
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,实验要求:1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;2.三台服务器为CentOS 7.3的64位系统;3.所有主机网卡都设置成仅主机模式,绑定静态地
千家信息网最后更新 2025年02月08日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 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安全错误
数据库的锁怎样保障安全
数据库级安全
数据库备份的目的
我的世界网易版幻想乡服务器
数据库密文
数据库查询一周内数据
软件开发现有市场规模
卫星通信网络安全图片大全
安全接收请求的服务器叫什么
工业互联网 华工科技
我的世界手机版一箭必杀服务器
外卖软件开发靠谱吗
广州爱奖励互联网科技有限公司
服务器驱动器怎么删除
网络安全的常识有哪些
网络安全数字经济股票
明日之后上海服务器怎么开
网络安全赏金猎人全名
成都网络安全周开启
成都计算机应用软件开发服务费
网络技术功能的图片
软件开发工程师属于什么级别
龙华网络数据库维护公司
网络安全个人隐私保护条例
农业银行网络安全措施
软件开发文档背景图全屏
峰会网络安全保障内容
网络安全工具写生
浙江linux软件开发
网络安全oj
石家庄应用软件开发