一:实验环境:
redhat9.4
四台主机:Haproxy,webserver1,webserver2,测试机
所需软件:nginx,Haproxy
二:在webserver1和2中分别下载nginx:
给nginx共享文件中写入(容易区分)
在测试机中测试效果:
三:配置Haproxy:
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
测试:
设置最大连接数以及线程;
查看线程:
查看子进程:
注意:
自定义Haproxy log位置:
要打开udp:
更改存放路径:
四:Haproxy常用参数:
五:在访问不到页面时设置sorry:(关闭webserver1和2的nginx)
下载httpd,并将80端口改为别的端口(因为Haproxy正占用80)
[root@haproxy ~]# vim /etc/httpd/conf/httpd.conf
Listen 8080 (backup - sorrysorry端口)
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
输出内容:
[root@haproxy ~]# echo sorry 下班了! > /var/www/html/index.html
测试:
六:下线指定某一服务器:
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
重启服务:[root@haproxy ~]# systemctl restart haproxy.service
测试:只能访问66(恢复正常:取消disabled)
七:将访问指定到某一网站:
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
重启:[root@haproxy ~]# systemctl restart haproxy.service
测试:
八:Haproxy热更新方法:
编辑文件:
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
重启服务:
[root@haproxy ~]# systemctl restart haproxy.service
socat使用:
下载socat:[root@haproxy ~]# dnf install socat -y
下线某台服务器:
测试:(只有服务二可以)
上线某台服务器:
测试:
针对多线程:
九:算法简介:
静态算法:
static-rr:不支持与socat的更改权重同时使用
测试:
first:
测试:webserver1和2同时测
动态算法:
其他算法
其它算法即可作为静态算法,又可以通过选项成为动态算法
source
源地址hash,基于用户源地址hash并将请求转发到后端服务器,后续同一个源地址请求将被转发至同一 个后端web服务器。此方式当后端服务器数据量发生变化时,会导致很多用户的请求转发至新的后端服 务器,默认为静态方式,但是可以通过hash-type支持的选项更改这个算法一般是在不插入Cookie的TCP模式下使用,也可给拒绝会话cookie的客户提供最好的会话粘性,适用于session会话保持但不支持cookie和缓存的场景源地址有两种转发客户端请求到后端服务器的服务器选取计算方式,分别是取模法 和一致性hash
十:
COOKIE值设定:
编辑文件:
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
重启服务:[root@haproxy ~]# systemctl restart haproxy.service
测试:
IP透传:
ip四层透传:
Haproxy配置;
webserver1:
测试:
ACL:
基于域名访问控制:
测试机写本地解析:
访问:
基于网段IP限制:
测试:
拒绝网段访问:
匹配浏览器类型:
测试:
基于动静分离访问限制:
测试:
匹配访问路径实现动静分离:
测试:
Haproxy的https
测试: