Haproxy搭建Web群集——实战篇
admin
2023-02-24 01:20:02
0

实验要求:

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/bash
wenjian="/usr/local/nginx/sbin/nginx"
pid="/usr/local/nginx/logs/nginx.pid"
case $1 in
start)
    $wenjian ;;
stop)
    kill -s QUIT $(cat $pid) ;;
restart)
    $0 stop
    $0 start
;;
reload)
    kill -s HUP $(cat $pid) ;;
*)
    echo "Please,try again"
    exit 1 ;;
esac
exit 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搭建Web群集——实战篇

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]# ls
haproxy-info.log

#查看日志文件
[root@haproxy haproxy]# cat haproxy-info.log
Nov 30 16: 53: 30 Haproxy haproxy[119165]: 192.168.100.50: 49191 [30/Nov/2019:16:53: 30.100
webcluster. 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 "

相关内容

热门资讯

终于懂了“川麻圈.究竟有挂吗?... 终于懂了“川麻圈.究竟有挂吗?”原来真的有挂您好,川麻圈这个游戏其实有挂的,确实是有挂的,需要了解加...
终于懂了“欢聚水鱼虎步龙行.究... 网上科普关于“欢聚水鱼虎步龙行有没有挂”话题很是火热,小编也是针对欢聚水鱼虎步龙行作*弊开挂的方法以...
今日重大发现“天天九州麻将.有... 网上科普关于“天天九州麻将有没有挂”话题很是火热,小编也是针对天天九州麻将作*弊开挂的方法以及开挂对...
年终好物清单:这台255g的旗... 在“大屏即正义”的数码潮流里,我们似乎习惯了为了更大的显示面积而牺牲手腕的舒适度。但当我们冷静下来审...
【第一资讯】“宁波游戏大厅.有... 有 亲,根据资深记者爆料宁波游戏大厅是可以开挂的,确实有挂(咨询软件无需...
终于懂了“快乐打筒子.到底有挂... 家人们!今天小编来为大家解答快乐打筒子透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
【今日要闻】“国民麻将.开挂器... 网上科普关于“国民麻将有没有挂”话题很是火热,小编也是针对国民麻将作*弊开挂的方法以及开挂对应的知识...
重磅消息“飞鹰互娱.到底有挂吗... 您好:飞鹰互娱这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
今日重大发现“功夫熊猫炸金花.... 今日重大发现“功夫熊猫炸金花.怎么装挂?”外卦神器下载您好,功夫熊猫炸金花这个游戏其实有挂的,确实是...
玩家攻略科普“上海敲麻.可以开... 网上科普关于“上海敲麻有没有挂”话题很是火热,小编也是针对上海敲麻作*弊开挂的方法以及开挂对应的知识...