Haproxy搭建Web群集——实战篇
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,实验要求:1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端;2.三台服务器为CentOS 7.3的64位系统;3.所有主机网卡都设置成仅主机模式,绑定静态地
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
家长会网络安全教育
docker代理服务器怎么查看
华彩人生连接不上服务器
研究生写论文需要用到的数据库
网络安全法以
服务器远程开关机管理
微博在哪里看微数据库
合肥博森互联网科技
软件开发电脑的配置
软件开发都需要学什么课程
网络安全制度建设流程
如何应对常见的网络安全事故
R720服务器关闭pxe启动
服务器可以连接两个路由器吗
苏州美橙互联云服务器
pdrr网络安全模型对比
数据库文件打开的四种方式
数据库恢复技术三种方法
网络协议和网络安全模式
知识图谱软件开发
杭州恩牛网络技术有限公司好吗
济南企业党建软件开发系统
软件开发天猫店
扬州众云网络技术有限公司
apk服务器
腾讯云会展网络安全
第二章数据库的基本操作
北邮网络安全技术挑战赛
昌平区管理软件开发口碑推荐
fifaonline3数据库lp