haproxy的相干知识
haproxy:适用七层负载均衡的负载均衡器情况准备,三台主机,一台做haproxy的服务器,另外两台分别为客户端
haproxy:192.168.38.100
web1:192.168.38.10
web2:192.168.38.20
下载haproxy
https://i-blog.csdnimg.cn/direct/f234c89e75f8447facae8f9acb85592e.png
查看配置文件
https://i-blog.csdnimg.cn/direct/6604e7bac1894697b3ac00b2bc7c2c48.png
首先是global区域全局配置,常用多历程与多线程配置
https://i-blog.csdnimg.cn/direct/eb8010b9d9904cabb8768d44fe4cc757.png
每次改完记得重启服务
https://i-blog.csdnimg.cn/direct/b0fae6f001e3450ca539d3e9913746b1.png
查看历程
pstree -p | grep haproxy 多线程
https://i-blog.csdnimg.cn/direct/d62ef956d33749e19297c424e5297bfc.png
然后是default配置,默认配置 针对以下的frontend、backend和listen生效,可以多个name也可以没有name
frontend 前端servername,雷同于Nginx的一个虚拟主机server和LVS服务集群。
backend 后端服务器组,等于nginx的upstream和LVS中的RS服务器
listen 将frontend和backend合并在一起配置,相对于frontend和backend配置更简便
配置格式 :姓名,端口,七层负载,利用的后端服务组以及检查是否上下线的规范
https://i-blog.csdnimg.cn/direct/fab5bd2bc5fd4dadaa3aae10eeffe110.png
https://i-blog.csdnimg.cn/direct/3662b41b28804b0aa7401de8b5200a0b.png
重要内容:算法,内容包括static-rr,first,roundrobin,random,source,uri,hdr()
动态算法roundrobin,random支持socate工具对权重进举措态调解
echo "get weight webserver_80/webserverl "socat stdio/var/lib/haproxy/haproxy.sock
echo "set weight webserver_80/webserver1 " socat stdio/var/1ib/haproxy/haproxy.sock source指的是源地址相处的访问同一台服务器,其利用取模法进行算法计算会由于权重的影响发生较大的变更,因此尚有一种为同等性哈希的算法,其影响是局部
uri基于对用户请求的URI的左半部分或整个uri做hash,再将hash结果对总权重进行取模后根据最闭幕果将请求转发到后端指定服务器,与source一样有两种计算方式
hdr针对用户每个http头部(header)请求中的指定信息做hash,此处由 name 指定的http首部将会被取出并做hash计算然后由服务器总权重取模以后派发至某挑出的服务器,假如无有效值,则会利用默认的轮询调度。
计算方式为服务器哈希环点key=hash(后端服务器虚拟ip)%(2^32),客户机哈希环点key=hash(client_ip)%(2^32),范围均在0-2^32-1之间,客户端会寻找与他距离最近的服务器,顺时针寻找
sourece,uri,hdr均支持hash-type consistent下令调解是否为动态
高级功能与配置
基于cookie的会话保持
https://i-blog.csdnimg.cn/direct/4dd89f49a1e34020b9737f3a03397199.png
haproxy状态页
https://i-blog.csdnimg.cn/direct/81ed4b37ef8948f18039c25f04aba8dc.png
ip透传
七层中控制ip透传的是default配置中的参数,nginx与apache均可用
https://i-blog.csdnimg.cn/direct/1e60f5068b3144c0b72c232a9ce3ed22.png
或者可以修改日志文件
四层中,IP透传需要利用署理服务
https://i-blog.csdnimg.cn/direct/ff1092f87f554962a4049e21fc6b0155.png
https://i-blog.csdnimg.cn/direct/6dd877a90860428dbac21c89a1e175bd.png
ACL配置选项
根据报头进行判断
https://i-blog.csdnimg.cn/direct/87f37f6920f84cf3b87638a621a361a9.png
从路径的第一个主机名开始到问号前竣事,判断是否包含
https://i-blog.csdnimg.cn/direct/7d6af568196d4f75a47a847b92088ca7.png
根据路径
https://i-blog.csdnimg.cn/direct/c1ce4565ec9d422482ad5fee5b242f0e.png
根据网段或者ip
https://i-blog.csdnimg.cn/direct/1a7cb920561b4ae6a9109dd12db9da6d.png实现动静分离
https://i-blog.csdnimg.cn/direct/a1e9eaaffa27455ebb18968e1f079e62.png利用服务器的限制
https://i-blog.csdnimg.cn/direct/febc707fb3bf4aadb777f9941d13cb0a.png
自界说错误界面
https://i-blog.csdnimg.cn/direct/bcd4edb0ef05492d972ec1c471d49fd6.png
创建文件,复制到创建的文件修改
https://i-blog.csdnimg.cn/direct/69311465432a40df910df3c3de58379a.png
并将创建的文件写入haproxy的default配置文件中
https://i-blog.csdnimg.cn/direct/5aaad0887d6b4739baf9c8e3cd732ec0.png
四层负载实现力气,以mysql为准
在客户端分别安装mariadb,并创建用户答应远程登陆
在服务端进行配置
https://i-blog.csdnimg.cn/direct/6e32dafb6af440ffb88f1257df900182.png
haproxy的https实现
制作证书
openssreq-newkey rsa:2048-nodes -sha256 -keyout /etc/haproxy/certs/ni .org.key-x509 -days 365 out /etc/haproxy/certs/ni.org.crt 配置实例
https://i-blog.csdnimg.cn/direct/41e180f1e5284d7289803f6d2045ba7f.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]