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安全错误
数据库的锁怎样保障安全
数据库表字段过多有啥影响
达梦数据库支持mysql语句吗
冠量科技服务器管理口默认密码
服务器计算器
南开大学网络安全学院地址
软件开发六个经验
东川区上门软件开发咨询报价
网络安全 剧本
广东凡科互联网科技有限公司
一个平台服务器有多大
数据通信与网络技术期末
dede数据库文件在哪
网络安全风险评估多久做一次
网络安全比赛知识点
云数据库推荐安全吗
什么是外码数据库
读秀数据库学位论文数量
利用jdbc连接并操作数据库
网络安全检测期限
软件开发的本质pdf
电脑搭建服务器
南昌fil服务器
途虎养车 软件开发加班么
安徽易也网络技术有限公司
缩编数据库
俄罗斯钓鱼4链接服务器失败
滨州网络时间与服务器时间的区分
软件开发合作计划书
lunix怎么连接数据库
松江区正规软件开发代理品牌