企业项目实战----HAProxy(负载均衡 | 配置日志 | 监控 | acl访问控制)

前言

HAProxy是一个使用C语言编写的自由及开放源代码软件,提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理
HAProxy特别适用于那些负载特大的web站点完全可以支持数以万计的并发连接并且可以保护你的web服务器不被暴露到网络上
HAProxy处于7层(运用层),先判断请求内容,动态资源发给谁?静态资源发给谁?再进行负载均衡。没有处于4层(传输层,基于IP和端口,直接负载均衡) 的LVS快。即便这样,也不能否认HAProxy的优秀!

实验环境

server1	172.25.64.1		haproxy			企业六
server2	172.25.64.2		httpd			企业六
server3	172.25.64.3		httpd			企业六
客户端	172.25.64.250

一、配置负载均衡

1、去官网下载haproxy安装包
https://www.haproxy.com/

server1(haproxy端)
2、安装haproxy软件包

[root@server1 ~]# yum install rpm-build gcc pcre-devel -y		#安装所需依赖
[root@server1 ~]# ls
haproxy-1.7.3.tar.gz				#安装包
[root@server1 ~]# rpmbuild -tb haproxy-1.7.3.tar.gz	#将安装包解压成二进制文件
[root@server1 ~]# ls
haproxy-1.7.3.tar.gz  rpmbuild		#在/root生成rpmbuild文件
[root@server1 ~]# rpm -ihv rpmbuild/RPMS/x86_64/haproxy-1.7.3-1.x86_64.rpm 

在这里插入图片描述

2、解压haproxy包

[root@server1 ~]# tar zxf haproxy-1.7.3.tar.gz 
[root@server1 ~]# ls
haproxy-1.7.3  haproxy-1.7.3.tar.gz  rpmbuild

3、查看安装软件会生成的配置文件

可以看到没有配置文件,需要自己生成!
在这里插入图片描述
4、生成配置文件

注意:可以看到/etc/haproxy目录下什么都没有

在这里插入图片描述

[root@server1 ~]# cp haproxy-1.7.3/examples/content-sw-sample.cfg /etc/haproxy/haproxy.cfg

在这里插入图片描述
5、修改haproxy配置文件

[root@server1 ~]# vim /etc/haproxy/haproxy.cfg 
######################需修改的地方###########################
  21         bind            *:80 name clear			#监控所有80端口
  32        # use_backend     static if { hdr_beg(host) -i img }
  33        # use_backend     static if { path_beg /img /css   }
  34         default_backend static				#默认访问backend static
  40        # option prefer-last-server
  42        # option redispatch
  45        # option httpchk  HEAD /favicon.ico
  46         server          server2 172.25.64.2:80 check inter 1000	#后端服务器
  47         server          server3 172.25.64.3:80 check inter 1000	#后端服务器

[root@server1 ~]# /etc/init.d/haproxy start		#启动服务

在这里插入图片描述

server2(后端服务器)

安装阿帕奇,编写默认发布文件并启动阿帕奇服务!
在这里插入图片描述
server3(后端服务器)

安装阿帕奇,编写默认发布文件并启动阿帕奇服务!

在这里插入图片描述

客户端测试

访问server1轮询出现server2和server3发布的内容!
在这里插入图片描述

二、配置日志

可以看到,日志保存在本地,local0是自定义的

[root@server1 ~]# vim /etc/haproxy/haproxy.cfg

在这里插入图片描述
一般日志都放在/var/log/目录下:

显然没有haproxy的日志
在这里插入图片描述
没有咱就自己添加一个日志呗!

[root@server1 log]# vim /etc/rsyslog.conf		#日志配置文件
#######################需要修改的地方##########
 13 $ModLoad imudp
 14 $UDPServerRun 514
 62 local0.*                /var/log/haproxy.log

[root@server1 log]# service rsyslog restart		#重启日志服务

在这里插入图片描述
测试:
在这里插入图片描述

三、HAProxy监控

 27         monitor-uri     /monitoruri		#监控haproxy服务

200ok表示haproxy服务本身是正常的,跟server2,3httpd服务是否启动无关
在这里插入图片描述

 31         stats uri       /admin/stats		
 						#监控页面,颜色都有说明,显示监控服务的状态

在这里插入图片描述

四、acl访问控制

server1(haproxy端)

[root@server1 ~]# vim /etc/haproxy/haproxy.cfg 
############添加###################
 35         acl blacklist src 172.25.64.250			#禁止172.25.64.250访问
 36 
 37         http-request deny if blacklist
 
[root@server1 ~]# /etc/init.d/haproxy restart

在这里插入图片描述
客户端测试

可以看到之前时能访问的,现在被禁止了!美中不足的是403 Forbidden不好看。。。
在这里插入图片描述
IP为172.25.64.250的主机浏览器访问:

咱们将别人拉入了黑名单,总不能直接告诉别人吧!咱不能做直男,是吧!

server1(haproxy端)

[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
###################加入######################
 39         errorloc 403 http:172.25.64.1:8080/index.html	#错误页面重定向

[root@server1 ~]# /etc/init.d/haproxy restart
[root@server1 ~]# yum install httpd -y			#安装阿帕奇
[root@server1 ~]# vim /var/www/html/index.html
页面不存在!
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
 136 Listen 8080						#修改端口为8080,避免与HAProxy发生冲突
[root@server1 ~]# /etc/init.d/httpd start		#启动阿帕奇服务

在这里插入图片描述

客户端测试

IP为172.25.64.250的主机浏览器访问172.25.254.1后自动跳转到80端口!是不是好看多了!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值