二。haproxy主配置文件和子配置文件
vim /lib/systemd/system/haproxy.service(查看环境)
主配置文件:/etc/haproxy/haproxy.cfg
子配置文件:/etc/haproxy/conf.d
可以把内容全写入子配置目录的一个文件内
三。haproxy的基本配置
默认先读取global内的配置,再读取default里面的配置(default里面的东西会把global内的相同配置进行覆盖),再listen等
yum install haproxy -y
vim /etc/haproxy/haproxy.cfg(包含配置文件)
1.global:全局配置段
1.进程及安全配置相关参数
2.性能调整相关参数
3.Debug参数
注释:haproxy的默认进程为1个,nbproc则指定开启的格外进程数,cpu-map:永久绑定cpu,另外:多进程nbproc和多线程nbthread不能同时使用,两者互斥
查看进程:pstree -p | grep haproxy
查看线程:cat /proc/进程号/status | grep -i thread
定义haproxy日志的方法(默认日志标签为local2)
vim /etc/haproxy/haproxy.conf
vim /etc/rsyslog.conf(开启UDP协议,并且指定文件,且要创建文件)
2.proxies:代理配置段
1.defaults:为frontend和backend,listen提供默认配置
2.frontend:前端,相当于nginx里面的server{}
3.backend:后端,相当于nginx里面的upstram{}
4.listen:同时拥有前端和后端的配置,配置简单,生产推荐使用
3.server配置:
check inter 2:健康检测,每隔2秒进行一次检测
fall 3:3秒检测没有成功,即下线
rise 4:对于下线的主句,如果重新上线,需要检测4此,才算重新上线
backup:在其他server都失效时候则进行最终展示,当其他服务启动状态下则不进行访问
disable:在打了disable这个标签的时候,则表示次页面禁止访问、
maxconn:最大并发连接数,表示最大连接的人数
注释:进行访问的时候ip,首先进行(check)检测(例如nginx是否在线),inter(次数),fall(次数表示n次检测,没有连接上就会撤销),rise(次数表示检测n次则表示上线),weight(权重,2表示访问两次)
四。socat工具
对于服务器动态权重和其他状态可以使用socat工具进行调整,Socat市linux下的一个多功能网络工具,主要特点是在两个数据流之间建立双向通道,且支持众多协议和连接方式,如IP,TCP,UDP,IPV6,Socket文件等
1.vim /etc/haproxy/haproxy.service
2.检测是否出现套接字
ll /var/lib/haproxy/stats
3.下载socat工具
yum install socat -y
4.使用socat工具
echo "get weight webcluster/web1" | socat stdio /var/lib/haproxy/stats:查看权重
echo "set weight webcluster/web1 2" | socat stdio /var/lib/haproxy/stats:设置权重
echo "disable server webcluster/web1" | socat stdio /var/lib/haproxy/stats:下线后端服务器
echo "enable server webcluster/web1" | socat stdio /var/lib/haproxy/stats:上线后端服务器
拓展:处理多进程(添加多个文件保存多个进程)
实验一:配置一台简单的服务器
vim /etc/haproxy/haproxy.cfg
http:7层 tcp:4层
注释:前端页面指定80端口(*监听所有)和http,后端指定为webcluster-host,
后端页面balance表示算法,指定两台配置nginx页面的主机,并且设定名字为web1和web2
listen可以兼顾前端和后端全部的配置进行包装
配置完后:systemctl restart haproxy.service
测试:在配置nginx的任意主机进行curl服务器的ip,则可以显示配置nginx的两台主机的页面