haproxy基础理论+实验

 

区别:

四层负载 lvs

调度器接受到client的报文后,不需要详细解析,只会解析传输层(IP MAC 端口),将报文交给后端的web,web对报文进行详细解析,如果请求报文当中包含了病毒,那就直接会被web解析

七层负载 haproxy

比较安全,速度较慢,调度器接收到client的报文后,会解析到应用层,并且会根据client请求的URL解析client需要的数据(index.php 或者html),会把当前的请求发送给适合处理这个请求的主机, haproxy可以拒绝请求

能实现七层负载的服务也必然可以实现四层负载

如果仅支持四层负载,那么支持不了七层负载

 

haproxy可以负载web可以负载mysql

优点:

  1. 可以对后端进行健康检查的、剔除集群中不正常的主机、如果集群中的主机恢复再把主机加入到集群中
  2. 支持拒绝连接、可以防止ddos攻击主机
  3. 实现透明代理、反向代理
  4. 工作模式 单进程

haproxy调度算法

roundrobin 动态轮询 weight 不需要重启haproxy自动生效

Static-rr 静态轮询  weight 需要重启haproxy才能生效

Leastconnect 最小连接

Source 源地址散列

实验

Haproxy代理web

Client 192.168.2.10

Haproxyr 192.168.2.20

Web1 192.168.2.30

Web2 192.168.2.40

web统一配置,输入给网页不同的内容

1d76e74c1c4e4b4d9f1067adaf813281.png

 

 

 

到haproxy配置

[root@localhost ~]# tar -zxf haproxy-1.4.24.tar.gz

[root@localhost ~]# cd haproxy-1.4.24/

[root@localhost haproxy-1.4.24]# uname -r

3.10.0-514.el7.x86_64

[root@localhost haproxy-1.4.24]#

[root@localhost haproxy-1.4.24]# make TARGET=linux310 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy

做一个软连接路径优化 软连接必须在

[root@localhost haproxy-1.4.24]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy

拷贝配置文件

[root@localhost haproxy-1.4.24]# mkdir /etc/haproxy

[root@localhost haproxy-1.4.24]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy

[root@localhost examples]# cp haproxy.cfg /etc/haproxy/

拷贝脚本到存放系统命令目录下

[root@localhost examples]# cp haproxy.init /etc/rc.d/init.d/haproxy

[root@localhost examples]# chmod a+x /etc/rc.d/init.d/haproxy

[root@localhost examples]# chkconfig --add haproxy  #加入系统命令当中

 

[root@localhost examples]# cd /etc/haproxy/

[root@localhost haproxy]# vim haproxy.cfg

8 #       chroot /usr/share/haproxy   #工作目录 因为工作目录不在这里

 17         mode    http  #七层负载 不用动

然后把26行一下全部删除 ,因为里面存在都是案例要不然会启动失败

然后重新自己添加一段配置

 26 listen webservers 0.0.0.0:80  #监听主机上所有ip 集群名叫webservers

 27         balance roundrobin  #动态轮询

 28         option  httpchk GET /index.html  #健康检查 get的访问后端页面

 29         server web_one 192.168.2.30:80 check inter 2000   rise 3  fall 3

 31         server web_two 192.168.2.40:80 check inter 2000  rise3   fall 3

#server 添加后端的主机

#web_one 后端主机的名称 ip 192.168.2.30:80

#check inter 2000 rise3 fall 3 使用健康查看 三次访问成功 web是正常的 ,

三次失败web不正常

Client:

访问负载的ip haproxy

8e93768b4e57457180b734d218f23354.png

负载mariadb

Client 192.168.2.10

Haproxyr 192.168.2.20

mysql 192.168.2.30

mysql 192.168.2.40

Mysql1:

grant all on *.* to "root"@"192.168.2.%" identified by "123.com" ; #授权2网段

MariaDB [(none)]> create database one;

Query OK, 1 row affected (0.00 sec)

 

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

Mysql2:

MariaDB [(none)]> grant all on *.* to "root"@"192.168.2.%" identified by "123.com" ;

 

MariaDB [(none)]> create database two;

Query OK, 1 row affected (0.00 sec)

 

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

Haproxy负载mysql

[root@localhost haproxy]# vim /etc/haproxy/haproxy.cfg

[root@localhost haproxy]# systemctl restart haproxy.service

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6YOt5Lic6L6w,size_20,color_FFFFFF,t_70,g_se,x_16

 

Client:也要安装mysql

[root@localhost ~]# mysql -uroot -p123.com -P3306 -h 192.168.2.20 

#-P3306 msql端口号

#-h 连接负载的ip

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6YOt5Lic6L6w,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值