含义及理解:
1 . HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机, 它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整 合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
2 . HAProxy 支持连接拒绝:因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救了很多站点,这个优点也是其它负载均衡器没有的。
实验搭建:
server1 :haproxy :172.25.13.110
server2 :web1 :172.25.13.120
server3 :web2 :172.25.13.130
首先安装服务在server1
yum install haproxy -y
vim /etc/haproxy/haproxy.cfg
添加下面的内容:
后端服务器设置:
安装开启httpd服务并且设置共享页面。此处可以设置不同的共享内容,便于区分访问的后端真实服务器,明显的表现出负载均衡的效果。
测试: curl 172.25.13.110
发现实现反向代理以及负载均衡
[root@foundation13 images]# curl 172.25.13.110
server3
[root@foundation13 images]# curl 172.25.13.110
server2
[root@foundation13 images]# curl 172.25.13.110
server3
作为反向代理服务器,varnish将自己的端口伪装成所代理的后端服务器的端口,因此只能代理一种服务,但是haproxy可以同时代理多个服务。只需要设置不同的代理配置段。
配置文件中写入了监控页面,可以直接在web页面上监控后端服务状态:
访问:172.25.13.110:8080/status
haproxy 自带后端服务器的健康检查,当某一个后端服务器宕机之后,其会自动自动将其移除出轮询队列,并在监控页面显示异常:
关闭server3httpd服务,模拟异常:
再次使用客户端进行访问测试:只访问正常的后端服务器
[root@foundation13 images]# curl 172.25.13.110
server2
[root@foundation13 images]# curl 172.25.13.110
server2
[root@foundation13 images]# curl 172.25.13.110
server2
查看监控页面:异常后端服务被标红:
动静分离
根据实际情况可客户方访问请求,将不同类型的访问请求调转到不同的后端服务器。php请求交给php server处理,jsp请求交给tomcat处理,即业务上的应用请求分离,而haproxy完全可以利用acl匹配规则实现这一目的.
修改主机配置文件:
#设置接收请求的前端虚拟节点,Frontend可以增加规则直接指定具体使用后端的backend
frontend main *:80
acl url_static path_beg -i /images
acl url_static path_end -i .jpg .gif .png .css .js # 增加规则
use_backend static if url_static
default_backend app # 不同的条件对应不同的后端服务器
backend static # 定义后端服务器
server web1 172.25.13.120:80 check
backend app # 定义后端服务器
server web2 172.25.13.130:80 check
systemctl restart haproxy 重新启动服务
后端服务器设置:
当访问 http://172.25.13.110/images 时候,请求会被调转到 172.25.13.120 。需要在该主机中创建:/var/www/html/images 目录 ,提前在该目录中放置一张图片。
使用客户端访问 http://172.25.13.110/images 。访问指定的后端服务器 172.25.13.120
主要是根据不同的请求将其指定到不同后端服务器,这就是动静分离。