HAProxy+Tomcat实现负载均衡

环境:

server1: 192.168.1.11

server2: 192.168.1.12

server3: 192.168.1.13

server1: 安装HAProxy

server2,server3: 安装httpd

 


1. HAProxy

HAProxy安装:

yum install -y haproxy.x86_64

server1:

HAProxy+Tomcat实现负载均衡_第1张图片

 

在server2和server3安装httpd

yum install -y httpd

HAProxy+Tomcat实现负载均衡_第2张图片

HAProxy+Tomcat实现负载均衡_第3张图片

 

haproxy负载均衡

修改haproxy配置文件

  • 监听端口 80
  • 默认backend web
  • 负载均衡组 web1(server1的80端口) web2(server2的80端口)
vim /etc/haproxy/haproxy.cfg

HAProxy+Tomcat实现负载均衡_第4张图片

重启haproxy服务

systemctl restart haproxy.service

HAProxy+Tomcat实现负载均衡_第5张图片

 

修改httpd默认发布页面

echo "web1:server2: 192.168.1.12" > /var/www/html/index.html

 

echo "web2:server3: 192.168.1.13" > /var/www/html/index.html

启动httpd服务

systemctl start httpd

 

测试:

HAProxy+Tomcat实现负载均衡_第6张图片

可以看到,轮询访问server2和server3

 

修改haproxy配置文件,添加状态查看

HAProxy+Tomcat实现负载均衡_第7张图片

重启服务

HAProxy+Tomcat实现负载均衡_第8张图片

HAProxy+Tomcat实现负载均衡_第9张图片

添加状态查看身份认证,刷新时间

HAProxy+Tomcat实现负载均衡_第10张图片

重启服务,测试

HAProxy+Tomcat实现负载均衡_第11张图片

HAProxy+Tomcat实现负载均衡_第12张图片

 

访问几次后

HAProxy+Tomcat实现负载均衡_第13张图片

查看状态

HAProxy+Tomcat实现负载均衡_第14张图片

 可以看到 session模块数据更新了

 

黑名单设置

HAProxy+Tomcat实现负载均衡_第15张图片

在192.168.1.11主机测试

被注释掉的errorloc作用是将403错误重定向到一个指定页面

 

根据条件转发(动静分离)

vim /etc/haproxy/haproxy.cfg

HAProxy+Tomcat实现负载均衡_第16张图片

 重启服务

在server3安装php

yum install -y php

 重启httpd服务(为了加载php)

 写一个php页面

HAProxy+Tomcat实现负载均衡_第17张图片

 

测试:

默认访问server2

HAProxy+Tomcat实现负载均衡_第18张图片

访问php页面

HAProxy+Tomcat实现负载均衡_第19张图片

显然访问的时server3,我们在server2没有安装php

 

读写分离

server3

HAProxy+Tomcat实现负载均衡_第20张图片

vim upload_file.php 

HAProxy+Tomcat实现负载均衡_第21张图片

server2

HAProxy+Tomcat实现负载均衡_第22张图片

HAProxy+Tomcat实现负载均衡_第23张图片

给upload文件夹写权限,方便后面测试

HAProxy+Tomcat实现负载均衡_第24张图片

server2安装php(server3在之前装过了)

yum install php -y

重启httpd

HAProxy+Tomcat实现负载均衡_第25张图片

 

配置haproxy

HAProxy+Tomcat实现负载均衡_第26张图片

这里是通过提交方式确定是读还是写

读请求交给server2,写请求交给server3

重启haproxy服务

测试

可以看到访问index.php实际访问的server2

 

上传

HAProxy+Tomcat实现负载均衡_第27张图片

HAProxy+Tomcat实现负载均衡_第28张图片

查看

上传到server3

server2没有上传

 

你可能感兴趣的:(Linux)